tech.tokimeki.forum.thread
Schema Diff
+20 -2
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
}