Message Reference¶
Only the hello request and successful hello response carry
protocol_version: "1.0". Every post-hello request and response omits it.
error_response also carries no type or event_type discriminator.
Requests¶
| Message | Required fields |
|---|---|
hello |
type, protocol_version, auth.token |
ping |
type |
query_state |
type; optional scope is all, motors, or groups |
subscribe |
type |
command |
type, motor_id, op; move also requires target_percent |
group_command |
type, group_id, op; move also requires target_percent |
multi_motor_move |
type, non-empty ordered targets; each target requires unique motor_id and target_percent |
request_id is optional on every request and, when present, is a
1-to-64-code-point string. The retired auth.mode, post-hello
protocol_version, subscribe.filter, and command_id fields are invalid.
query_state.state is response-only.
Responses And Events¶
| Message | Notes |
|---|---|
hello |
Returns the negotiated protocol_version; echoes a valid request_id when supplied; carries neither status nor authentication credentials |
pong |
Response to ping |
query_state |
Baseline state object |
subscribe |
Minimal subscription acknowledgement with type and optional request_id; carries no status |
command_response |
Terminal response for command, group_command, or multi_motor_move; multi-motor responses include ordered per-target results |
motor_state |
Motor delta event |
group_state |
Group delta event |
registry_event |
Registry delta event |
error_response |
Protocol/session error; request_id is present only when the request supplied a valid one |
Events omit event_seq and uptime_ms; motor_state also omits motor_seq.
Protocol errors omit the internal diagnostic error_reason.
See examples/ for complete wire payloads.