# `Raxol.AgentClientProtocol.Ext.Schema.SessionRecordNotification`
[🔗](https://github.com/DROOdotFOO/raxol-agent/blob/raxol_agent_client_protocol-v0.1.0/packages/raxol_agent_client_protocol/lib/raxol/agent_client_protocol/ext/schema.ex#L41)

`_raxol/session.record`: the generic, self-describing delivery frame
for every record kind OTHER than `session_update` (`turn_started`,
`turn_completed`, `session_created`, and any kind added later). New record
kinds require NO new method rows — readers skip-unknown-kind as a fold.

# `t`

```elixir
@type t() :: %Raxol.AgentClientProtocol.Ext.Schema.SessionRecordNotification{
  kind: String.t(),
  offset: pos_integer(),
  payload: map(),
  session_id: String.t(),
  taint: String.t(),
  ts: integer()
}
```

# `from_json`

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

# `new`

```elixir
@spec new(String.t(), pos_integer(), String.t(), map(), String.t(), integer()) :: t()
```

Build a record notification (first-class fields).

# `to_json`

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

---

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