com.scanash.content.image
Schema Diff
+23 -0
Compatibility Analysis
Breaking Changes Detected
2 breaking changes, 7 non-breaking changes.
Breaking Changes (2)
- ConstraintAdded ConstraintAdded { vertex_id: "com.scanash.content.image#aspectRatio.height", sort: "minimum", value: "1" }
- ConstraintAdded ConstraintAdded { vertex_id: "com.scanash.content.image#aspectRatio.width", sort: "minimum", value: "1" }
Non-Breaking Changes (7)
- AddedVertex AddedVertex { vertex_id: "com.scanash.content.image#aspectRatio" }
- AddedVertex AddedVertex { vertex_id: "com.scanash.content.image#aspectRatio.height" }
- AddedVertex AddedVertex { vertex_id: "com.scanash.content.image#aspectRatio.width" }
- AddedVertex AddedVertex { vertex_id: "com.scanash.content.image.aspectRatio" }
- AddedEdge AddedEdge { src: "com.scanash.content.image", tgt: "com.scanash.content.image.aspectRatio", kind: "prop", name: Some("aspectRatio") }
- AddedEdge AddedEdge { src: "com.scanash.content.image#aspectRatio", tgt: "com.scanash.content.image#aspectRatio.height", kind: "prop", name: Some("height") }
- AddedEdge AddedEdge { src: "com.scanash.content.image#aspectRatio", tgt: "com.scanash.content.image#aspectRatio.width", kind: "prop", name: Some("width") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "com.scanash.content.image#aspectRatio" }AddedVertex { vertex_id: "com.scanash.content.image#aspectRatio.height" }AddedVertex { vertex_id: "com.scanash.content.image#aspectRatio.width" }AddedVertex { vertex_id: "com.scanash.content.image.aspectRatio" }
Constraint Changes
- ConstraintAdded ConstraintAdded { vertex_id: "com.scanash.content.image#aspectRatio.height", sort: "minimum", value: "1" }
- ConstraintAdded ConstraintAdded { vertex_id: "com.scanash.content.image#aspectRatio.width", sort: "minimum", value: "1" }
Additional Notes
- Non-breaking: AddedEdge { src: "com.scanash.content.image", tgt: "com.scanash.content.image.aspectRatio", kind: "prop", name: Some("aspectRatio") }
- Non-breaking: AddedEdge { src: "com.scanash.content.image#aspectRatio", tgt: "com.scanash.content.image#aspectRatio.height", kind: "prop", name: Some("height") }
- Non-breaking: AddedEdge { src: "com.scanash.content.image#aspectRatio", tgt: "com.scanash.content.image#aspectRatio.width", kind: "prop", name: Some("width") }
1
1
{
2
2
"id": "com.scanash.content.image",
3
3
"defs": {
4
4
"main": {
5
5
"type": "object",
6
6
"required": [
7
7
"image"
8
8
],
9
9
"properties": {
10
10
"alt": {
11
11
"type": "string",
12
12
"maxLength": 10000,
13
13
"description": "Alt text describing the image for accessibility.",
14
14
"maxGraphemes": 1000
15
15
},
16
16
"image": {
17
17
"type": "blob",
18
18
"accept": [
19
19
"image/*"
20
20
],
21
21
"maxSize": 5000000
22
+
},
23
+
"aspectRatio": {
24
+
"ref": "#aspectRatio",
25
+
"type": "ref",
26
+
"description": "Intrinsic pixel dimensions, so the renderer can reserve space and avoid layout shift."
22
27
}
23
28
},
24
29
"description": "An image uploaded for a site.standard.document body. Held on the record (nested in the markdown content's `images` list) so the PDS retains the blob."
30
+
},
31
+
"aspectRatio": {
32
+
"type": "object",
33
+
"required": [
34
+
"width",
35
+
"height"
36
+
],
37
+
"properties": {
38
+
"width": {
39
+
"type": "integer",
40
+
"minimum": 1
41
+
},
42
+
"height": {
43
+
"type": "integer",
44
+
"minimum": 1
45
+
}
46
+
},
47
+
"description": "Intrinsic dimensions of the image in pixels."
25
48
}
26
49
},
27
50
"$type": "com.atproto.lexicon.schema",
28
51
"lexicon": 1
29
52
}