# `Minga.Frontend.Adapter.GUI.AgentChatMessageCodec`
[🔗](https://github.com/jsmestad/minga/blob/main/lib/minga/frontend/adapter/gui/agent_chat_message_codec.ex#L1)

Shared wire codec for a single agent-chat transcript message body.

The resident `gui_agent_transcript` (0x86) stream uses this codec, so every
data-derived bounded field is validated before it is written. Invalid values
raise an encoding error rather than being truncated, dropped, or downgraded.

# `encode_message_body`

```elixir
@spec encode_message_body(Minga.RenderModel.UI.AgentChat.message_body()) :: binary()
```

# `message_id`

```elixir
@spec message_id(Minga.RenderModel.UI.AgentChat.message()) :: non_neg_integer()
```

Stable uint32 id for a message, or 0 for a bare (unwrapped) body.

# `resident_entry_size`

```elixir
@spec resident_entry_size(Minga.RenderModel.UI.AgentChat.message()) :: pos_integer()
```

Returns the 0x86 byte cost of one resident transcript entry.

---

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