# `Raxol.AgentClientProtocol.Schema.Unstable.SessionConfigOption`
[🔗](https://github.com/DROOdotFOO/raxol-agent/blob/raxol_agent_client_protocol-v0.1.0/packages/raxol_agent_client_protocol/lib/raxol/agent_client_protocol/schema/unstable.ex#L561)

A session configuration option selector and its current state. The
`kind`-specific payload (currently only `select`) is flattened directly
into this struct's top-level wire object alongside `id`/`name`/etc.
(Unstable)

Ported from the MIT `f1729/agent_client_protocol` (c) 2025 f1729; see NOTICE.md.

# `t`

```elixir
@type t() :: %Raxol.AgentClientProtocol.Schema.Unstable.SessionConfigOption{
  _meta: map(),
  category:
    Raxol.AgentClientProtocol.Schema.Unstable.SessionConfigOptionCategory.t()
    | nil,
  description: String.t() | nil,
  id: String.t(),
  kind: Raxol.AgentClientProtocol.Schema.Unstable.SessionConfigKind.t(),
  name: String.t()
}
```

# `from_json`

```elixir
@spec from_json(term()) :: {:ok, t()} | {:error, term()}
```

# `new`

```elixir
@spec new(
  String.t(),
  String.t(),
  Raxol.AgentClientProtocol.Schema.Unstable.SessionConfigKind.t()
) ::
  t()
```

# `select`

```elixir
@spec select(String.t(), String.t(), term(), term()) :: t()
```

Convenience: build a `select`-kind option directly.

# `to_json`

```elixir
@spec to_json(t()) :: map()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
