com.cultureblocs.annotation

cultureblocs.com

Schema Diff

+4 -7

From

CID
bafyreidyp7sllfk...
Indexed At
2026-07-24 22:02 UTC
View this version

To

CID
bafyreifa43wagjs...
Indexed At
2026-08-17 10:43 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

4 breaking changes, 6 non-breaking changes.

Breaking Changes (4)
  • RemovedVertex RemovedVertex { vertex_id: "com.cultureblocs.annotation:body.photos" }
  • RemovedVertex RemovedVertex { vertex_id: "com.cultureblocs.annotation:body.photos:items" }
  • RemovedEdge RemovedEdge { src: "com.cultureblocs.annotation:body", tgt: "com.cultureblocs.annotation:body.photos", kind: "prop", name: Some("photos") }
  • RemovedEdge RemovedEdge { src: "com.cultureblocs.annotation:body.photos", tgt: "com.cultureblocs.annotation:body.photos:items", kind: "items", name: None }
Non-Breaking Changes (6)
  • AddedVertex AddedVertex { vertex_id: "com.cultureblocs.annotation:body.images" }
  • AddedVertex AddedVertex { vertex_id: "com.cultureblocs.annotation:body.images:items" }
  • AddedVertex AddedVertex { vertex_id: "com.cultureblocs.defs#imageRef" }
  • AddedEdge AddedEdge { src: "com.cultureblocs.annotation:body", tgt: "com.cultureblocs.annotation:body.images", kind: "prop", name: Some("images") }
  • AddedEdge AddedEdge { src: "com.cultureblocs.annotation:body.images", tgt: "com.cultureblocs.annotation:body.images:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "com.cultureblocs.annotation:body.images:items", tgt: "com.cultureblocs.defs#imageRef", kind: "ref", name: None }

Migration Guidance

Removed Elements

  • RemovedVertex { vertex_id: "com.cultureblocs.annotation:body.photos" }
  • RemovedVertex { vertex_id: "com.cultureblocs.annotation:body.photos:items" }

Added Elements

  • AddedVertex { vertex_id: "com.cultureblocs.annotation:body.images" }
  • AddedVertex { vertex_id: "com.cultureblocs.annotation:body.images:items" }
  • AddedVertex { vertex_id: "com.cultureblocs.defs#imageRef" }

Additional Notes

  • Breaking: RemovedEdge { src: "com.cultureblocs.annotation:body", tgt: "com.cultureblocs.annotation:body.photos", kind: "prop", name: Some("photos") }
  • Breaking: RemovedEdge { src: "com.cultureblocs.annotation:body.photos", tgt: "com.cultureblocs.annotation:body.photos:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "com.cultureblocs.annotation:body", tgt: "com.cultureblocs.annotation:body.images", kind: "prop", name: Some("images") }
  • Non-breaking: AddedEdge { src: "com.cultureblocs.annotation:body.images", tgt: "com.cultureblocs.annotation:body.images:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "com.cultureblocs.annotation:body.images:items", tgt: "com.cultureblocs.defs#imageRef", kind: "ref", name: None }
1 1
{
2 2
  "id": "com.cultureblocs.annotation",
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
          "createdAt",
11 11
          "work"
12 12
        ],
13 13
        "properties": {
14 14
          "geo": {
15 15
            "ref": "com.cultureblocs.defs#geo",
16 16
            "type": "ref"
17 17
          },
18 18
          "note": {
19 19
            "type": "string",
20 20
            "maxGraphemes": 3000
21 21
          },
22 22
          "work": {
23 23
            "ref": "com.cultureblocs.defs#workRef",
24 24
            "type": "ref"
25 25
          },
26 26
          "media": {
27 27
            "type": "array",
28 28
            "items": {
29 29
              "ref": "com.cultureblocs.defs#mediaRef",
30 30
              "type": "ref"
31 31
            },
32 32
            "maxLength": 10
33 33
          },
34 -
          "photos": {
34 +
          "images": {
35 35
            "type": "array",
36 36
            "items": {
37 -
              "type": "blob",
38 -
              "accept": [
39 -
                "image/*"
40 -
              ],
41 -
              "maxSize": 2000000
37 +
              "ref": "com.cultureblocs.defs#imageRef",
38 +
              "type": "ref"
42 39
            },
43 40
            "maxLength": 10,
44 -
            "description": "Published photos as ATProto blobs. Tier 0 records use `media` (local refs); the promoter uploads and swaps at publish time."
41 +
            "description": "Published images as imageRefs. Tier 0 records use `media` (local refs); the promoter uploads the bytes and maps alt + aspectRatio across at publish time."
45 42
          },
46 43
          "context": {
47 44
            "ref": "com.cultureblocs.defs#strongRef",
48 45
            "type": "ref",
49 46
            "description": "Optional exhibition or event record this annotation was made within."
50 47
          },
51 48
          "createdAt": {
52 49
            "type": "string",
53 50
            "format": "datetime"
54 51
          },
55 52
          "provenance": {
56 53
            "ref": "com.cultureblocs.defs#provenance",
57 54
            "type": "ref"
58 55
          },
59 56
          "matchConfidence": {
60 57
            "type": "string",
61 58
            "description": "How the work was identified: cosine embedding match, ORB geometric verification, or manual entry.",
62 59
            "knownValues": [
63 60
              "embedding",
64 61
              "geometric",
65 62
              "manual"
66 63
            ]
67 64
          }
68 65
        }
69 66
      },
70 67
      "description": "A bookmark/note about a specific work, typically minted by the AR gallery app at the moment of recognition. Meaningful entirely on its own — no bead required."
71 68
    }
72 69
  },
73 70
  "$type": "com.atproto.lexicon.schema",
74 71
  "lexicon": 1
75 72
}

Compare Other Versions

Lexicon Garden

@