Layers
One channel model
Everything a session transmits belongs to a channel. Channel 0 is the control channel: JSON-RPC messages that are reliable, ordered, replayed after a reconnection, and logged in full — handshakes, action submissions and statuses, world events, approvals, heartbeats, telemetry. Channels 1 and up are frame channels: observation streams from the world and command streams from the agent, each declared with a modality and a class,reliable or latest-wins, and logged by hash. Ordering holds within a channel and never across channels, so the protocol states the few cross-channel relations it needs explicitly.
A binding maps channels onto connections. The control channel always has its own connection; frame channels ride inline on it, or on stream connections such as WebTransport, WebRTC, or shared memory that give each channel its own flow control, so that a burst of camera frames can never delay an e-stop event.
Cross-cutting the layers are the safety model, reproducibility, and conformance profiles.