app.didpic.feed.comment
Schema Diff
+34 -4
Compatibility Analysis
Breaking Changes Detected
1 breaking change, 18 non-breaking changes.
Breaking Changes (1)
- RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "app.didpic.feed.comment:body", src: "app.didpic.feed.comment:body", tgt: "app.didpic.feed.comment:body.text", kind: "prop", name: Some("text") }
Non-Breaking Changes (18)
- AddedVertex AddedVertex { vertex_id: "app.didpic.feed.comment:body.alt" }
- AddedVertex AddedVertex { vertex_id: "app.didpic.feed.comment:body.aspectRatio" }
- AddedVertex AddedVertex { vertex_id: "app.didpic.feed.comment:body.facets" }
- AddedVertex AddedVertex { vertex_id: "app.didpic.feed.comment:body.facets:items" }
- AddedVertex AddedVertex { vertex_id: "app.didpic.feed.comment:body.image" }
- AddedVertex AddedVertex { vertex_id: "app.didpic.feed.comment:body.labels" }
- AddedVertex AddedVertex { vertex_id: "app.didpic.feed.post#aspectRatio" }
- AddedVertex AddedVertex { vertex_id: "app.didpic.feed.post#selfLabels" }
- AddedVertex AddedVertex { vertex_id: "app.didpic.richtext.facet" }
- AddedEdge AddedEdge { src: "app.didpic.feed.comment:body", tgt: "app.didpic.feed.comment:body.alt", kind: "prop", name: Some("alt") }
- AddedEdge AddedEdge { src: "app.didpic.feed.comment:body", tgt: "app.didpic.feed.comment:body.aspectRatio", kind: "prop", name: Some("aspectRatio") }
- AddedEdge AddedEdge { src: "app.didpic.feed.comment:body", tgt: "app.didpic.feed.comment:body.facets", kind: "prop", name: Some("facets") }
- AddedEdge AddedEdge { src: "app.didpic.feed.comment:body", tgt: "app.didpic.feed.comment:body.image", kind: "prop", name: Some("image") }
- AddedEdge AddedEdge { src: "app.didpic.feed.comment:body", tgt: "app.didpic.feed.comment:body.labels", kind: "prop", name: Some("labels") }
- AddedEdge AddedEdge { src: "app.didpic.feed.comment:body.aspectRatio", tgt: "app.didpic.feed.post#aspectRatio", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "app.didpic.feed.comment:body.facets", tgt: "app.didpic.feed.comment:body.facets:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "app.didpic.feed.comment:body.facets:items", tgt: "app.didpic.richtext.facet", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "app.didpic.feed.comment:body.labels", tgt: "app.didpic.feed.post#selfLabels", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "app.didpic.feed.comment:body.alt" }AddedVertex { vertex_id: "app.didpic.feed.comment:body.aspectRatio" }AddedVertex { vertex_id: "app.didpic.feed.comment:body.facets" }AddedVertex { vertex_id: "app.didpic.feed.comment:body.facets:items" }AddedVertex { vertex_id: "app.didpic.feed.comment:body.image" }AddedVertex { vertex_id: "app.didpic.feed.comment:body.labels" }AddedVertex { vertex_id: "app.didpic.feed.post#aspectRatio" }AddedVertex { vertex_id: "app.didpic.feed.post#selfLabels" }AddedVertex { vertex_id: "app.didpic.richtext.facet" }
Additional Notes
- Breaking: RequiredEdgeRemoved { vertex_id: "app.didpic.feed.comment:body", src: "app.didpic.feed.comment:body", tgt: "app.didpic.feed.comment:body.text", kind: "prop", name: Some("text") }
- Non-breaking: AddedEdge { src: "app.didpic.feed.comment:body", tgt: "app.didpic.feed.comment:body.alt", kind: "prop", name: Some("alt") }
- Non-breaking: AddedEdge { src: "app.didpic.feed.comment:body", tgt: "app.didpic.feed.comment:body.aspectRatio", kind: "prop", name: Some("aspectRatio") }
- Non-breaking: AddedEdge { src: "app.didpic.feed.comment:body", tgt: "app.didpic.feed.comment:body.facets", kind: "prop", name: Some("facets") }
- Non-breaking: AddedEdge { src: "app.didpic.feed.comment:body", tgt: "app.didpic.feed.comment:body.image", kind: "prop", name: Some("image") }
- Non-breaking: AddedEdge { src: "app.didpic.feed.comment:body", tgt: "app.didpic.feed.comment:body.labels", kind: "prop", name: Some("labels") }
- Non-breaking: AddedEdge { src: "app.didpic.feed.comment:body.aspectRatio", tgt: "app.didpic.feed.post#aspectRatio", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "app.didpic.feed.comment:body.facets", tgt: "app.didpic.feed.comment:body.facets:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "app.didpic.feed.comment:body.facets:items", tgt: "app.didpic.richtext.facet", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "app.didpic.feed.comment:body.labels", tgt: "app.didpic.feed.post#selfLabels", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
-
"description": "A comment on a didpic post. Optionally a reply to another comment on the same post.",
5
+
"description": "A comment on a post. Optionally includes a single image with alt text and self-applied labels — same image shape as feed.post. Either text or image (or both) must be present in practice; the lexicon doesn't enforce that since 'one of N required' isn't expressible.",
6
6
"key": "tid",
7
7
"record": {
8
8
"properties": {
9
+
"alt": {
10
+
"description": "Alt text for accessibility. Required by the client when `image` is set and the author has the requireAltText pref enabled.",
11
+
"maxGraphemes": 1000,
12
+
"maxLength": 10000,
13
+
"type": "string"
14
+
},
15
+
"aspectRatio": {
16
+
"ref": "app.didpic.feed.post#aspectRatio",
17
+
"type": "ref"
18
+
},
9
19
"createdAt": {
10
20
"format": "datetime",
11
21
"type": "string"
12
22
},
23
+
"facets": {
24
+
"items": {
25
+
"ref": "app.didpic.richtext.facet",
26
+
"type": "ref"
27
+
},
28
+
"type": "array"
29
+
},
30
+
"image": {
31
+
"accept": [
32
+
"image/png",
33
+
"image/jpeg",
34
+
"image/webp"
35
+
],
36
+
"maxSize": 5000000,
37
+
"type": "blob"
38
+
},
39
+
"labels": {
40
+
"description": "Self-applied content labels (e.g. nsfw) on the comment's image.",
41
+
"ref": "app.didpic.feed.post#selfLabels",
42
+
"type": "ref"
43
+
},
13
44
"parent": {
14
-
"description": "Optional: the comment being replied to. Must be a comment on the same post as `subject`. When absent this is a top-level comment.",
45
+
"description": "The comment being replied to.",
15
46
"ref": "com.atproto.repo.strongRef",
16
47
"type": "ref"
17
48
},
18
49
"subject": {
19
-
"description": "The post being commented on (top of the thread).",
50
+
"description": "The post being commented on.",
20
51
"ref": "com.atproto.repo.strongRef",
21
52
"type": "ref"
22
53
},
23
54
"text": {
24
55
"maxGraphemes": 1000,
25
56
"maxLength": 10000,
26
57
"type": "string"
27
58
}
28
59
},
29
60
"required": [
30
61
"subject",
31
-
"text",
32
62
"createdAt"
33
63
],
34
64
"type": "object"
35
65
},
36
66
"type": "record"
37
67
}
38
68
},
39
69
"id": "app.didpic.feed.comment",
40
70
"lexicon": 1
41
71
}