net.atchan.thread
Schema Diff
+8 -0
Compatibility Analysis
Backward Compatible
Backward compatible. 6 non-breaking changes.
Non-Breaking Changes (6)
- AddedVertex AddedVertex { vertex_id: "net.atchan.richtext.facet" }
- AddedVertex AddedVertex { vertex_id: "net.atchan.thread:body.facets" }
- AddedVertex AddedVertex { vertex_id: "net.atchan.thread:body.facets:items" }
- AddedEdge AddedEdge { src: "net.atchan.thread:body", tgt: "net.atchan.thread:body.facets", kind: "prop", name: Some("facets") }
- AddedEdge AddedEdge { src: "net.atchan.thread:body.facets", tgt: "net.atchan.thread:body.facets:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "net.atchan.thread:body.facets:items", tgt: "net.atchan.richtext.facet", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "net.atchan.richtext.facet" }AddedVertex { vertex_id: "net.atchan.thread:body.facets" }AddedVertex { vertex_id: "net.atchan.thread:body.facets:items" }
Additional Notes
- Non-breaking: AddedEdge { src: "net.atchan.thread:body", tgt: "net.atchan.thread:body.facets", kind: "prop", name: Some("facets") }
- Non-breaking: AddedEdge { src: "net.atchan.thread:body.facets", tgt: "net.atchan.thread:body.facets:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "net.atchan.thread:body.facets:items", tgt: "net.atchan.richtext.facet", kind: "ref", name: None }
1
1
{
2
2
"id": "net.atchan.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
"subject",
11
11
"board",
12
12
"embeds",
13
13
"createdAt"
14
14
],
15
15
"properties": {
16
16
"body": {
17
17
"type": "string",
18
18
"maxLength": 20000,
19
19
"description": "Comment line for this thread",
20
20
"maxGraphemes": 2000
21
21
},
22
22
"name": {
23
23
"type": "string",
24
24
"maxLength": 640,
25
25
"description": "Cosmetic name associated with the poster",
26
26
"maxGraphemes": 64
27
27
},
28
28
"board": {
29
29
"type": "string",
30
30
"format": "at-uri",
31
31
"description": "Reference to the net.atchan.board record this thread is posted on"
32
32
},
33
33
"embeds": {
34
34
"type": "array",
35
35
"items": {
36
36
"refs": [
37
37
"net.atchan.embed.image"
38
38
],
39
39
"type": "union"
40
40
},
41
41
"maxLength": 1,
42
42
"minLength": 1,
43
43
"description": "A list of embedded data for this post. Only one embed is permitted. This limit may be raised in the future."
44
44
},
45
+
"facets": {
46
+
"type": "array",
47
+
"items": {
48
+
"ref": "net.atchan.richtext.facet",
49
+
"type": "ref"
50
+
},
51
+
"description": "Rich-text formatting annotations over byte ranges of `body`"
52
+
},
45
53
"spoiler": {
46
54
"type": "boolean",
47
55
"description": "If the post's embed should require an additional UI interaction to be shown. Intended to hide spoilers from users. Sometimes used to hide NSFW content."
48
56
},
49
57
"subject": {
50
58
"type": "string",
51
59
"maxLength": 1280,
52
60
"description": "Subject line for this thread",
53
61
"maxGraphemes": 128
54
62
},
55
63
"createdAt": {
56
64
"type": "string",
57
65
"format": "datetime",
58
66
"description": "Client-declared timestamp when this post was originally created"
59
67
}
60
68
}
61
69
},
62
70
"description": "A record containing an imageboard thread. Commonly referred to as the OP."
63
71
}
64
72
},
65
73
"$type": "com.atproto.lexicon.schema",
66
74
"lexicon": 1
67
75
}