Pure normalization and validation for ACP session lifecycle parameters.
@spec absolute_path?(any()) :: boolean()
@spec additional_directories(keyword() | map() | nil) :: any()
@spec client_opts(keyword()) :: keyword()
@spec mcp_servers(keyword() | map() | nil) :: list()
@spec normalize(map(), keyword() | map() | nil) :: map()
@spec valid_additional_directories?(any()) :: boolean()
@spec validate( keyword(), map() | nil ) :: :ok | {:error, term()}
@spec validate_additional_directories!(keyword() | map() | nil | [String.t()]) :: [String.t()] | nil
@spec validate_cwd(any()) :: :ok | {:error, {:invalid_params, :cwd_must_be_absolute}}