tech.tokimeki.forum.message
Schema Diff
+24 -7
Compatibility Analysis
Breaking Changes Detected
4 breaking changes, 15 non-breaking changes.
Breaking Changes (4)
- KindChanged KindChanged { vertex_id: "tech.tokimeki.forum.message:body.replyTo", old_kind: "string", new_kind: "ref" }
- KindChanged KindChanged { vertex_id: "tech.tokimeki.forum.message:body.thread", old_kind: "string", new_kind: "ref" }
- ConstraintAdded ConstraintAdded { vertex_id: "tech.tokimeki.forum.message:body.replyTo", sort: "ref", value: "com.atproto.repo.strongRef" }
- ConstraintAdded ConstraintAdded { vertex_id: "tech.tokimeki.forum.message:body.thread", sort: "ref", value: "com.atproto.repo.strongRef" }
Non-Breaking Changes (15)
- AddedVertex AddedVertex { vertex_id: "com.atproto.label.defs#selfLabels" }
- AddedVertex AddedVertex { vertex_id: "com.atproto.repo.strongRef" }
- AddedVertex AddedVertex { vertex_id: "tech.tokimeki.forum.message:body.labels" }
- AddedVertex AddedVertex { vertex_id: "tech.tokimeki.forum.message:body.labels:variant0" }
- AddedVertex AddedVertex { vertex_id: "tech.tokimeki.forum.message:body.langs" }
- AddedVertex AddedVertex { vertex_id: "tech.tokimeki.forum.message:body.langs:items" }
- AddedEdge AddedEdge { src: "tech.tokimeki.forum.message:body", tgt: "tech.tokimeki.forum.message:body.labels", kind: "prop", name: Some("labels") }
- AddedEdge AddedEdge { src: "tech.tokimeki.forum.message:body", tgt: "tech.tokimeki.forum.message:body.langs", kind: "prop", name: Some("langs") }
- AddedEdge AddedEdge { src: "tech.tokimeki.forum.message:body.labels", tgt: "tech.tokimeki.forum.message:body.labels:variant0", kind: "variant", name: Some("com.atproto.label.defs#selfLabels") }
- AddedEdge AddedEdge { src: "tech.tokimeki.forum.message:body.labels:variant0", tgt: "com.atproto.label.defs#selfLabels", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "tech.tokimeki.forum.message:body.langs", tgt: "tech.tokimeki.forum.message:body.langs:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "tech.tokimeki.forum.message:body.replyTo", tgt: "com.atproto.repo.strongRef", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "tech.tokimeki.forum.message:body.thread", tgt: "com.atproto.repo.strongRef", kind: "ref", name: None }
- ConstraintRemoved ConstraintRemoved { vertex_id: "tech.tokimeki.forum.message:body.replyTo", sort: "format" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "tech.tokimeki.forum.message:body.thread", sort: "format" }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "com.atproto.label.defs#selfLabels" }AddedVertex { vertex_id: "com.atproto.repo.strongRef" }AddedVertex { vertex_id: "tech.tokimeki.forum.message:body.labels" }AddedVertex { vertex_id: "tech.tokimeki.forum.message:body.labels:variant0" }AddedVertex { vertex_id: "tech.tokimeki.forum.message:body.langs" }AddedVertex { vertex_id: "tech.tokimeki.forum.message:body.langs:items" }
Constraint Changes
- ConstraintAdded ConstraintAdded { vertex_id: "tech.tokimeki.forum.message:body.replyTo", sort: "ref", value: "com.atproto.repo.strongRef" }
- ConstraintAdded ConstraintAdded { vertex_id: "tech.tokimeki.forum.message:body.thread", sort: "ref", value: "com.atproto.repo.strongRef" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "tech.tokimeki.forum.message:body.replyTo", sort: "format" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "tech.tokimeki.forum.message:body.thread", sort: "format" }
Additional Notes
- Breaking: KindChanged { vertex_id: "tech.tokimeki.forum.message:body.replyTo", old_kind: "string", new_kind: "ref" }
- Breaking: KindChanged { vertex_id: "tech.tokimeki.forum.message:body.thread", old_kind: "string", new_kind: "ref" }
- Non-breaking: AddedEdge { src: "tech.tokimeki.forum.message:body", tgt: "tech.tokimeki.forum.message:body.labels", kind: "prop", name: Some("labels") }
- Non-breaking: AddedEdge { src: "tech.tokimeki.forum.message:body", tgt: "tech.tokimeki.forum.message:body.langs", kind: "prop", name: Some("langs") }
- Non-breaking: AddedEdge { src: "tech.tokimeki.forum.message:body.labels", tgt: "tech.tokimeki.forum.message:body.labels:variant0", kind: "variant", name: Some("com.atproto.label.defs#selfLabels") }
- Non-breaking: AddedEdge { src: "tech.tokimeki.forum.message:body.labels:variant0", tgt: "com.atproto.label.defs#selfLabels", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "tech.tokimeki.forum.message:body.langs", tgt: "tech.tokimeki.forum.message:body.langs:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "tech.tokimeki.forum.message:body.replyTo", tgt: "com.atproto.repo.strongRef", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "tech.tokimeki.forum.message:body.thread", tgt: "com.atproto.repo.strongRef", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
5
"description": "A message posted into a chat channel, or a comment inside a forum thread. Always written into the author's own repo within the space.",
6
6
"key": "tid",
7
7
"record": {
8
8
"properties": {
9
9
"channel": {
10
-
"description": "Space record URI of the tech.tokimeki.forum.channel this message belongs to.",
10
+
"description": "Space record URI of the tech.tokimeki.forum.channel this message belongs to. A channel is a mutable container, so it is referenced by URI alone.",
11
11
"format": "at-uri",
12
12
"type": "string"
13
13
},
14
14
"createdAt": {
15
15
"format": "datetime",
16
16
"type": "string"
17
17
},
18
18
"editedAt": {
19
+
"description": "Set when the message was edited in place (putRecord with the same rkey).",
19
20
"format": "datetime",
20
21
"type": "string"
21
22
},
22
23
"embed": {
23
24
"refs": [
24
25
"tech.tokimeki.forum.defs#images"
25
26
],
26
27
"type": "union"
27
28
},
28
29
"facets": {
29
30
"items": {
30
31
"ref": "app.bsky.richtext.facet",
31
32
"type": "ref"
32
33
},
33
34
"type": "array"
34
35
},
36
+
"labels": {
37
+
"description": "Self-applied labels, e.g. for adult content.",
38
+
"refs": [
39
+
"com.atproto.label.defs#selfLabels"
40
+
],
41
+
"type": "union"
42
+
},
43
+
"langs": {
44
+
"description": "Languages of the text (BCP-47).",
45
+
"items": {
46
+
"format": "language",
47
+
"type": "string"
48
+
},
49
+
"maxLength": 3,
50
+
"type": "array"
51
+
},
35
52
"replyTo": {
36
-
"description": "Space record URI of the message being replied to (inline reply in chat, parent comment in forum).",
37
-
"format": "at-uri",
38
-
"type": "string"
53
+
"description": "The tech.tokimeki.forum.message being replied to (inline reply in chat, parent comment in forum). The cid pins the version replied to; the message may be edited afterwards.",
54
+
"ref": "com.atproto.repo.strongRef",
55
+
"type": "ref"
39
56
},
40
57
"text": {
41
58
"maxGraphemes": 2000,
42
59
"maxLength": 20000,
43
60
"type": "string"
44
61
},
45
62
"thread": {
46
-
"description": "Space record URI of the tech.tokimeki.forum.thread (required when the channel kind is forum).",
47
-
"format": "at-uri",
48
-
"type": "string"
63
+
"description": "The tech.tokimeki.forum.thread this comment belongs to (required when the channel kind is forum). The cid pins the version of the thread the author saw.",
64
+
"ref": "com.atproto.repo.strongRef",
65
+
"type": "ref"
49
66
}
50
67
},
51
68
"required": [
52
69
"channel",
53
70
"text",
54
71
"createdAt"
55
72
],
56
73
"type": "object"
57
74
},
58
75
"type": "record"
59
76
}
60
77
},
61
78
"id": "tech.tokimeki.forum.message",
62
79
"lexicon": 1
63
80
}