at.turtleme.chat.message

turtleme.at

Schema Diff

+9 -0

From

CID
bafyreic7r36xldv...
Indexed At
2026-09-24 15:07 UTC
View this version

To

CID
bafyreibt2lgiomv...
Indexed At
2026-09-25 23:54 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 6 non-breaking changes.

Non-Breaking Changes (6)
  • AddedVertex AddedVertex { vertex_id: "app.bsky.richtext.facet" }
  • AddedVertex AddedVertex { vertex_id: "at.turtleme.chat.message:body.facets" }
  • AddedVertex AddedVertex { vertex_id: "at.turtleme.chat.message:body.facets:items" }
  • AddedEdge AddedEdge { src: "at.turtleme.chat.message:body", tgt: "at.turtleme.chat.message:body.facets", kind: "prop", name: Some("facets") }
  • AddedEdge AddedEdge { src: "at.turtleme.chat.message:body.facets", tgt: "at.turtleme.chat.message:body.facets:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "at.turtleme.chat.message:body.facets:items", tgt: "app.bsky.richtext.facet", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "app.bsky.richtext.facet" }
  • AddedVertex { vertex_id: "at.turtleme.chat.message:body.facets" }
  • AddedVertex { vertex_id: "at.turtleme.chat.message:body.facets:items" }

Additional Notes

  • Non-breaking: AddedEdge { src: "at.turtleme.chat.message:body", tgt: "at.turtleme.chat.message:body.facets", kind: "prop", name: Some("facets") }
  • Non-breaking: AddedEdge { src: "at.turtleme.chat.message:body.facets", tgt: "at.turtleme.chat.message:body.facets:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "at.turtleme.chat.message:body.facets:items", tgt: "app.bsky.richtext.facet", kind: "ref", name: None }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "main": {
5 5
      "description": "A single message sent to a turtle meat chat room. Messages live in the author's own repository; a room is assembled by reading the backlinks that point at it.",
6 6
      "key": "tid",
7 7
      "record": {
8 8
        "properties": {
9 9
          "createdAt": {
10 10
            "description": "Timestamp declared by the sending client. It is not verified, so readers that care about ordering should prefer the record key.",
11 11
            "format": "datetime",
12 12
            "type": "string"
13 13
          },
14 +
          "facets": {
15 +
            "description": "Rich text over byte ranges of 'text', in Bluesky's facet shape. turtle meat writes and reads only mentions (app.bsky.richtext.facet#mention), each pointing at the DID the handle in the text meant when the line was sent. There is no threading: a mention points at an account, not at a message. Byte offsets count the whole of 'text', colour and effect codes included.",
16 +
            "items": {
17 +
              "ref": "app.bsky.richtext.facet",
18 +
              "type": "ref"
19 +
            },
20 +
            "maxLength": 20,
21 +
            "type": "array"
22 +
          },
14 23
          "room": {
15 24
            "description": "The room the message was sent to. 'https://turtleme.at/chat/global' is the global room. Because this is a link, a backlink index can list a room's messages without a dedicated AppView. A message written into a clan, an at.turtleme.chat.clan permissioned space, carries that space's at:// URI here instead; it lives in the author's permissioned repository for the space rather than their public one.",
16 25
            "format": "uri",
17 26
            "type": "string"
18 27
          },
19 28
          "text": {
20 29
            "description": "The message body. It may carry Old School RuneScape style chat codes in the form 'colour:effect:message', for example 'red:wave:hello there'. A client that does not recognise the codes should display the string verbatim rather than stripping it.",
21 30
            "maxGraphemes": 200,
22 31
            "maxLength": 1000,
23 32
            "type": "string"
24 33
          }
25 34
        },
26 35
        "required": [
27 36
          "text",
28 37
          "room",
29 38
          "createdAt"
30 39
        ],
31 40
        "type": "object"
32 41
      },
33 42
      "type": "record"
34 43
    }
35 44
  },
36 45
  "id": "at.turtleme.chat.message",
37 46
  "lexicon": 1
38 47
}

Compare Other Versions

Lexicon Garden

@