tech.tokimeki.forum.thread

tokimeki.blue

Schema Diff

+20 -2

From

CID
bafyreibzysbyp4o...
Indexed At
2026-08-25 12:27 UTC
View this version

To

CID
bafyreieqxery4sj...
Indexed At
2026-08-25 13:18 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 10 non-breaking changes.

Non-Breaking Changes (10)
  • AddedVertex AddedVertex { vertex_id: "com.atproto.label.defs#selfLabels" }
  • AddedVertex AddedVertex { vertex_id: "tech.tokimeki.forum.thread:body.labels" }
  • AddedVertex AddedVertex { vertex_id: "tech.tokimeki.forum.thread:body.labels:variant0" }
  • AddedVertex AddedVertex { vertex_id: "tech.tokimeki.forum.thread:body.langs" }
  • AddedVertex AddedVertex { vertex_id: "tech.tokimeki.forum.thread:body.langs:items" }
  • AddedEdge AddedEdge { src: "tech.tokimeki.forum.thread:body", tgt: "tech.tokimeki.forum.thread:body.labels", kind: "prop", name: Some("labels") }
  • AddedEdge AddedEdge { src: "tech.tokimeki.forum.thread:body", tgt: "tech.tokimeki.forum.thread:body.langs", kind: "prop", name: Some("langs") }
  • AddedEdge AddedEdge { src: "tech.tokimeki.forum.thread:body.labels", tgt: "tech.tokimeki.forum.thread:body.labels:variant0", kind: "variant", name: Some("com.atproto.label.defs#selfLabels") }
  • AddedEdge AddedEdge { src: "tech.tokimeki.forum.thread:body.labels:variant0", tgt: "com.atproto.label.defs#selfLabels", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "tech.tokimeki.forum.thread:body.langs", tgt: "tech.tokimeki.forum.thread:body.langs:items", kind: "items", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "com.atproto.label.defs#selfLabels" }
  • AddedVertex { vertex_id: "tech.tokimeki.forum.thread:body.labels" }
  • AddedVertex { vertex_id: "tech.tokimeki.forum.thread:body.labels:variant0" }
  • AddedVertex { vertex_id: "tech.tokimeki.forum.thread:body.langs" }
  • AddedVertex { vertex_id: "tech.tokimeki.forum.thread:body.langs:items" }

Additional Notes

  • Non-breaking: AddedEdge { src: "tech.tokimeki.forum.thread:body", tgt: "tech.tokimeki.forum.thread:body.labels", kind: "prop", name: Some("labels") }
  • Non-breaking: AddedEdge { src: "tech.tokimeki.forum.thread:body", tgt: "tech.tokimeki.forum.thread:body.langs", kind: "prop", name: Some("langs") }
  • Non-breaking: AddedEdge { src: "tech.tokimeki.forum.thread:body.labels", tgt: "tech.tokimeki.forum.thread:body.labels:variant0", kind: "variant", name: Some("com.atproto.label.defs#selfLabels") }
  • Non-breaking: AddedEdge { src: "tech.tokimeki.forum.thread:body.labels:variant0", tgt: "com.atproto.label.defs#selfLabels", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "tech.tokimeki.forum.thread:body.langs", tgt: "tech.tokimeki.forum.thread:body.langs:items", kind: "items", name: None }
1 1
{
2 2
  "id": "tech.tokimeki.forum.thread",
3 3
  "defs": {
4 4
    "main": {
5 5
      "key": "tid",
6 6
      "type": "record",
7 7
      "record": {
8 8
        "type": "object",
9 9
        "required": [
10 10
          "channel",
11 11
          "title",
12 12
          "createdAt"
13 13
        ],
14 14
        "properties": {
15 15
          "tags": {
16 16
            "type": "array",
17 17
            "items": {
18 18
              "type": "string",
19 19
              "maxLength": 320,
20 20
              "maxGraphemes": 32
21 21
            },
22 22
            "maxLength": 8
23 23
          },
24 24
          "text": {
25 25
            "type": "string",
26 26
            "maxLength": 40000,
27 27
            "maxGraphemes": 5000
28 28
          },
29 29
          "embed": {
30 30
            "refs": [
31 31
              "tech.tokimeki.forum.defs#images"
32 32
            ],
33 33
            "type": "union"
34 34
          },
35 +
          "langs": {
36 +
            "type": "array",
37 +
            "items": {
38 +
              "type": "string",
39 +
              "format": "language"
40 +
            },
41 +
            "maxLength": 3,
42 +
            "description": "Languages of the title and text (BCP-47)."
43 +
          },
35 44
          "title": {
36 45
            "type": "string",
37 46
            "maxLength": 1280,
38 47
            "maxGraphemes": 128
39 48
          },
40 49
          "facets": {
41 50
            "type": "array",
42 51
            "items": {
43 52
              "ref": "app.bsky.richtext.facet",
44 53
              "type": "ref"
45 54
            }
46 55
          },
56 +
          "labels": {
57 +
            "refs": [
58 +
              "com.atproto.label.defs#selfLabels"
59 +
            ],
60 +
            "type": "union",
61 +
            "description": "Self-applied labels, e.g. for adult content."
62 +
          },
47 63
          "channel": {
48 64
            "type": "string",
49 -
            "format": "at-uri"
65 +
            "format": "at-uri",
66 +
            "description": "Space record URI of the tech.tokimeki.forum.channel this thread belongs to. A channel is a mutable container, so it is referenced by URI alone (like app.bsky.graph.listitem)."
50 67
          },
51 68
          "editedAt": {
52 69
            "type": "string",
53 -
            "format": "datetime"
70 +
            "format": "datetime",
71 +
            "description": "Set when the thread was edited in place (putRecord with the same rkey)."
54 72
          },
55 73
          "createdAt": {
56 74
            "type": "string",
57 75
            "format": "datetime"
58 76
          }
59 77
        }
60 78
      },
61 79
      "description": "A thread (topic) opened in a forum-kind channel. Written into the opener's own repo within the space. The thread carries its own body; comments are tech.tokimeki.forum.message records referencing it."
62 80
    }
63 81
  },
64 82
  "$type": "com.atproto.lexicon.schema",
65 83
  "lexicon": 1
66 84
}

Compare Other Versions

Lexicon Garden

@