# `Raxol.AgentClientProtocol.Schema.AvailableCommandInput`
[🔗](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/session_update.ex#L406)

Input specification for an `AvailableCommand`: an untagged union with a
single documented variant, `unstructured` (free text typed after the
command name). Per package convention, tagged-tuple unions don't get a
`Jason.Encoder` impl of their own.

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

# `t`

```elixir
@type t() ::
  {:unstructured, Raxol.AgentClientProtocol.Schema.UnstructuredCommandInput.t()}
```

# `from_json`

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

Total: never raises. A map carrying `"hint"` delegates to
`UnstructuredCommandInput.from_json/1`; any other map still decodes as
`:unstructured` with an empty hint (matching upstream's fallback), so
only a non-map argument fails.

# `to_json`

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

---

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