app.didpic.feed.comment

lexicons.didpic.app

Schema Diff

+32 -2

From

CID
bafyreihojhh64iz...
Indexed At
2026-05-18 00:14 UTC
View this version

To

CID
bafyreidelxh6cem...
Indexed At
2026-06-04 01:10 UTC
View this version

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 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 45
            "description": "The comment being replied to.",
15 46
            "ref": "com.atproto.repo.strongRef",
16 47
            "type": "ref"
17 48
          },
18 49
          "subject": {
19 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
}

Compare Other Versions

Lexicon Garden

@