app.atmobb.discussion.thread
Schema Diff
+7 -1
Compatibility Analysis
Backward Compatible
Backward compatible. 2 non-breaking changes.
Non-Breaking Changes (2)
- AddedVertex AddedVertex { vertex_id: "app.atmobb.discussion.thread:body.editedAt" }
- AddedEdge AddedEdge { src: "app.atmobb.discussion.thread:body", tgt: "app.atmobb.discussion.thread:body.editedAt", kind: "prop", name: Some("editedAt") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "app.atmobb.discussion.thread:body.editedAt" }
Additional Notes
- Non-breaking: AddedEdge { src: "app.atmobb.discussion.thread:body", tgt: "app.atmobb.discussion.thread:body.editedAt", kind: "prop", name: Some("editedAt") }
1
1
{
2
2
"id": "app.atmobb.discussion.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
"board",
11
11
"title"
12
12
],
13
13
"properties": {
14
14
"body": {
15
15
"type": "array",
16
16
"items": {
17
17
"refs": [
18
18
"app.atmobb.richtext.block#text",
19
19
"app.atmobb.richtext.block#quote",
20
20
"app.atmobb.richtext.block#code",
21
21
"app.atmobb.richtext.block#image"
22
22
],
23
23
"type": "union"
24
24
},
25
25
"maxLength": 200
26
26
},
27
27
"poll": {
28
28
"ref": "#poll",
29
29
"type": "ref"
30
30
},
31
31
"tags": {
32
32
"type": "array",
33
33
"items": {
34
34
"type": "string",
35
35
"maxLength": 640,
36
36
"maxGraphemes": 64
37
37
},
38
-
"maxLength": 8
38
+
"maxLength": 8,
39
+
"description": "Normalized lowercase topic labels. Clients should trim, collapse whitespace and deduplicate before writing."
39
40
},
40
41
"board": {
41
42
"type": "string",
42
43
"format": "at-uri",
43
44
"description": "The app.atmobb.forum.board this thread belongs to. The board URI's authority is the forum's DID."
44
45
},
45
46
"title": {
46
47
"type": "string",
47
48
"maxLength": 3000,
48
49
"maxGraphemes": 300
49
50
},
51
+
"editedAt": {
52
+
"type": "string",
53
+
"format": "datetime",
54
+
"description": "When the author last edited the body (or title). Absent means never edited."
55
+
},
50
56
"createdAt": {
51
57
"type": "string",
52
58
"format": "datetime"
53
59
}
54
60
}
55
61
},
56
62
"description": "A discussion thread (topic). Lives in the author's repo, pointing at a board in a forum's repo."
57
63
},
58
64
"poll": {
59
65
"type": "object",
60
66
"required": [
61
67
"options"
62
68
],
63
69
"properties": {
64
70
"options": {
65
71
"type": "array",
66
72
"items": {
67
73
"type": "string",
68
74
"maxLength": 1000,
69
75
"maxGraphemes": 100
70
76
},
71
77
"maxLength": 10,
72
78
"minLength": 2
73
79
},
74
80
"closesAt": {
75
81
"type": "string",
76
82
"format": "datetime"
77
83
},
78
84
"question": {
79
85
"type": "string",
80
86
"maxLength": 3000,
81
87
"maxGraphemes": 300
82
88
},
83
89
"multipleChoice": {
84
90
"type": "boolean"
85
91
}
86
92
},
87
93
"description": "An embedded poll. Votes are app.atmobb.poll.vote records referencing this thread."
88
94
}
89
95
},
90
96
"$type": "com.atproto.lexicon.schema",
91
97
"lexicon": 1
92
98
}