One message row, three doors, base keys always present
The rule
Normative: this is the rule
- The message list, the single-message read and the send acknowledgement publish the same message row.
- Its base keys (
id,sessionId,role,content,timestamp,status,sequenceNumber,nodeId,metadata, in that order) are always present. - The lineage and presentation keys
hierarchy,tags,display,toolArtifacts,parentMessageId,executionId,rootPipelineIdandparentPipelineIdare appended only when the message carries them, and are absent otherwise rather than present and null. - The single-message read resolves lineage on the same terms as the list, so its row is not a lesser one.
timestampis an ISO 8601 string.- The lightweight message status read is a different, four-key document (
id,status,sequenceNumber,timestamp) and is not this row.
Rule identifiers are permanent and are never renumbered. Each implementation publishes its own standing against these rules; this specification does not.spec 1.0-draft · PLAY-4 · changed in spec 1.0