# `Raxol.AgentClientProtocol.Rpc.RequestId`
[🔗](https://github.com/DROOdotFOO/raxol-agent/blob/raxol_agent_client_protocol-v0.1.0/packages/raxol_agent_client_protocol/lib/raxol/agent_client_protocol/rpc.ex#L22)

JSON-RPC request id: `null | integer | string`. Wire type is preserved
exactly (no coercion between string and integer ids).

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

# `t`

```elixir
@type t() :: nil | integer() | String.t()
```

# `display`

```elixir
@spec display(t()) :: String.t()
```

# `from_json`

```elixir
@spec from_json(term()) :: t()
```

Decode a valid wire id. Callers must check `valid?/1` first.

# `to_json`

```elixir
@spec to_json(t()) :: nil | integer() | String.t()
```

Encode a valid id to its wire representation. Callers must check `valid?/1` first.

# `valid?`

```elixir
@spec valid?(term()) :: boolean()
```

True when `term` is a wire-valid request id (`null | integer | string`).

---

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