com.cultureblocs.annotation
Schema Diff
+9 -0
Compatibility Analysis
Backward Compatible
Backward compatible. 6 non-breaking changes.
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
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
- 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
+
"images": {
35
+
"type": "array",
36
+
"items": {
37
+
"ref": "com.cultureblocs.defs#imageRef",
38
+
"type": "ref"
39
+
},
40
+
"maxLength": 10,
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."
42
+
},
34
43
"context": {
35
44
"ref": "com.cultureblocs.defs#strongRef",
36
45
"type": "ref",
37
46
"description": "Optional exhibition or event record this annotation was made within."
38
47
},
39
48
"createdAt": {
40
49
"type": "string",
41
50
"format": "datetime"
42
51
},
43
52
"provenance": {
44
53
"ref": "com.cultureblocs.defs#provenance",
45
54
"type": "ref"
46
55
},
47
56
"matchConfidence": {
48
57
"type": "string",
49
58
"description": "How the work was identified: cosine embedding match, ORB geometric verification, or manual entry.",
50
59
"knownValues": [
51
60
"embedding",
52
61
"geometric",
53
62
"manual"
54
63
]
55
64
}
56
65
}
57
66
},
58
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."
59
68
}
60
69
},
61
70
"$type": "com.atproto.lexicon.schema",
62
71
"lexicon": 1
63
72
}