# `ACP.Side`
[🔗](https://github.com/f1729/agent-client-protocol-elixir/blob/main/lib/acp/side.ex#L1)

Side behaviour for decoding JSON-RPC messages into typed structs.

Each side (client or agent) knows how to decode incoming requests and notifications.

# `decode_notification`
[🔗](https://github.com/f1729/agent-client-protocol-elixir/blob/main/lib/acp/side.ex#L11)

```elixir
@callback decode_notification(method :: String.t(), params :: map() | nil) ::
  {:ok, any()} | {:error, ACP.Error.t()}
```

# `decode_request`
[🔗](https://github.com/f1729/agent-client-protocol-elixir/blob/main/lib/acp/side.ex#L8)

```elixir
@callback decode_request(method :: String.t(), params :: map() | nil) ::
  {:ok, any()} | {:error, ACP.Error.t()}
```

---

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