{
"id": "chat.yakka.message",
"defs": {
"main": {
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"text",
"createdAt"
],
"properties": {
"text": {
"type": "string",
"maxLength": 10000,
"description": "The message body, as plain text.",
"maxGraphemes": 2000
},
"replyTo": {
"ref": "com.atproto.repo.strongRef",
"type": "ref",
"description": "The message being replied to. A strongRef rather than a bare URI so a reply names the exact revision it answered, which survives the parent being edited. Display order of a thread still comes from the view sequence (ADR 0012)."
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Client-declared creation time. A rough timestamp for display only — it is not an ordering key. The view assigns order (ADR 0012); this value is the author's clock and is not comparable across repos."
}
}
},
"description": "A message in a channel or DM space. The record lives in the *author's* repo within the space, so a message has no single owning collection to sort by — it is identified by (authorDid, tid). One collection serves channels and DMs alike (ADR 0016), which is what lets one pipeline carry both."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}