RoomFramePrefix
The single source of truth for the room frame-prefix byte space (#2007).
Every frame SeamRoom.dispatchIncoming classifies is discriminated by its first byte. Before this enum those bytes were five loose public const vals in four packages, and nothing made a collision a compile error. One member per frame family means a family cannot be added without claiming a byte, and RoomFramePrefixTest pins that no two claim the same one.
The real collision band is 0x60..0x7f, not 0xe0..0xff
Inherited prose (originally RoomChannel's KDoc) claimed these bytes are safe because they sit "outside the CBOR major-type-7 range (0xe0–0xff) used by serialization". That is false, and it is false in the direction that matters. CBOR text-string headers are 0x60 or len, so a bare top-level CBOR string collides with every byte claimed here:
| payload | first byte | collides with |
|---|---|---|
| 1-char string | 0x61 | Admit |
| 3-char string | 0x63 | Channel |
| 5-char string | 0x65 | Lobby |
| 11-char string | 0x6b | Heartbeat |
| 18-char string | 0x72 | Relay |
The codebase lives with this because room payloads are framed, not bare — an application payload is wrapped by the channel header before it reaches the wire. This registry's job is single-source-of-truth for the byte space and distinctness; it is deliberately not a safety proof, because no registry can make one.
Properties
Functions
Whether bytes is a frame of this family, by the family's own real classifier.
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
Returns an array containing the constants of this enum type, in the order they're declared.