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