# `Raxol.AgentClientProtocol.Schema.Ext.ExtRequest`
[🔗](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/ext.ex#L44)

An arbitrary `_`-prefixed extension request, not part of the core ACP
spec. Carries the raw JSON-RPC `method` name and already-decoded `params`.

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

# `t`

```elixir
@type t() :: %Raxol.AgentClientProtocol.Schema.Ext.ExtRequest{
  _meta: Raxol.AgentClientProtocol.Schema.Ext.meta(),
  method: String.t(),
  params: term()
}
```

# `from_map`

```elixir
@spec from_map(map()) :: {:ok, t()} | {:error, :invalid_ext_request}
```

Decode an ExtRequest from a raw wire map (`%{"method" => ..., "params" =>
...}`). Total: never raises, unknown fields fold into `_meta`.

# `new`

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

Build an ExtRequest from a method name and its params.

---

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