net.atchan.reply
Schema Diff
+8 -0
Compatibility Analysis
Backward Compatible
Backward compatible. 6 non-breaking changes.
Non-Breaking Changes (6)
- AddedVertex AddedVertex { vertex_id: "net.atchan.reply:body.facets" }
- AddedVertex AddedVertex { vertex_id: "net.atchan.reply:body.facets:items" }
- AddedVertex AddedVertex { vertex_id: "net.atchan.richtext.facet" }
- AddedEdge AddedEdge { src: "net.atchan.reply:body", tgt: "net.atchan.reply:body.facets", kind: "prop", name: Some("facets") }
- AddedEdge AddedEdge { src: "net.atchan.reply:body.facets", tgt: "net.atchan.reply:body.facets:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "net.atchan.reply:body.facets:items", tgt: "net.atchan.richtext.facet", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "net.atchan.reply:body.facets" }AddedVertex { vertex_id: "net.atchan.reply:body.facets:items" }AddedVertex { vertex_id: "net.atchan.richtext.facet" }
Additional Notes
- Non-breaking: AddedEdge { src: "net.atchan.reply:body", tgt: "net.atchan.reply:body.facets", kind: "prop", name: Some("facets") }
- Non-breaking: AddedEdge { src: "net.atchan.reply:body.facets", tgt: "net.atchan.reply:body.facets:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "net.atchan.reply:body.facets:items", tgt: "net.atchan.richtext.facet", kind: "ref", name: None }
1
1
{
2
2
"id": "net.atchan.reply",
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
"thread",
11
11
"body",
12
12
"createdAt"
13
13
],
14
14
"properties": {
15
15
"body": {
16
16
"type": "string",
17
17
"maxLength": 20000,
18
18
"description": "The main text of the post. May be an empty string if there are embeds.",
19
19
"maxGraphemes": 2000
20
20
},
21
21
"name": {
22
22
"type": "string",
23
23
"maxLength": 640,
24
24
"description": "Cosmetic name associated with the poster",
25
25
"maxGraphemes": 64
26
26
},
27
27
"sage": {
28
28
"type": "boolean",
29
29
"description": "Indication that user does not want to bump the OP when making a reply"
30
30
},
31
31
"embeds": {
32
32
"type": "array",
33
33
"items": {
34
34
"refs": [
35
35
"net.atchan.embed.image",
36
36
"net.atchan.embed.audio"
37
37
],
38
38
"type": "union"
39
39
},
40
40
"maxLength": 1,
41
41
"minLength": 1,
42
42
"description": "A list of embedded data for this post. Only one embed is permitted. This limit may be raised in the future."
43
43
},
44
+
"facets": {
45
+
"type": "array",
46
+
"items": {
47
+
"ref": "net.atchan.richtext.facet",
48
+
"type": "ref"
49
+
},
50
+
"description": "Rich-text formatting annotations over byte ranges of `body`"
51
+
},
44
52
"thread": {
45
53
"ref": "com.atproto.repo.strongRef",
46
54
"type": "ref",
47
55
"description": "The post being replied to. The referenced post must be an OP. Replies to other replies are made with >> in the text body"
48
56
},
49
57
"spoiler": {
50
58
"type": "boolean",
51
59
"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."
52
60
},
53
61
"createdAt": {
54
62
"type": "string",
55
63
"format": "datetime",
56
64
"description": "Client-declared timestamp when this post was originally created"
57
65
}
58
66
}
59
67
},
60
68
"description": "A record containing a reply to an imageboard thread"
61
69
}
62
70
},
63
71
"$type": "com.atproto.lexicon.schema",
64
72
"lexicon": 1
65
73
}