Appendix 3.A Message Reference

Message type values. Surface-sent types have the high bit clear; daemon-sent types have it set (0x8000).

MessageDirectionmsg_type
Hellosurface → daemon0x0001
Listsurface → daemon0x0002
Startsurface → daemon0x0003
Attachsurface → daemon0x0004
Answersurface → daemon0x0005
Welcomedaemon → surface0x8001
Listingdaemon → surface0x8002
Bounddaemon → surface0x8003
Refuseddaemon → surface0x8004
Turndaemon → surface0x8005
Updatedaemon → surface0x8006
Errordaemon → surface0x8007
Enddaemon → surface0x8008

Field tables. A field marked opt may be absent; its default is given in the section that specifies the message.

Hello (§3.6): element_types (array of string), surface (opt string).

Welcome (§3.6): kinds (array of string), daemon (opt string).

List (§3.6): no fields.

Listing (§3.6): conversations — array of {conversation, kind, seq}.

Start (§3.6): kind (string).

Attach (§3.6): conversation (string, 32 lowercase hex).

Bound (§3.6): conversation (string), seq (number), attached (opt bool, default false).

Refused (§3.6): reason (access_denied | unknown_kind | unsupported_elements), message (opt string).

Turn (§3.7): seq (number), id (opt string), name (opt string), class (opt array of string), elements (array of element objects, §3.8).

Update (§3.10): seq (number), full (opt bool, default false), elements (array of objects: patches when sparse, complete elements when full).

Answer (§3.9): seq (number), action (opt string), values (opt object, ref → value).

Error (§3.11): code (malformed | unbound | unknown_ref | bad_value | unexpected_type), message (opt string).

End (§3.11): seq (number), outcome (complete | cancelled | failed), message (opt string).

Edit this page