dev.roe.usesItem
Schema Diff
+4 -28
Compatibility Analysis
Breaking Changes Detected
13 breaking changes, 4 non-breaking changes.
Breaking Changes (13)
- RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "dev.roe.usesItem#link", src: "dev.roe.usesItem#link", tgt: "dev.roe.usesItem#link.url", kind: "prop", name: Some("url") }
- RemovedVertex RemovedVertex { vertex_id: "dev.roe.defs#aspectRatio" }
- RemovedVertex RemovedVertex { vertex_id: "dev.roe.usesItem#link" }
- RemovedVertex RemovedVertex { vertex_id: "dev.roe.usesItem#link.label" }
- RemovedVertex RemovedVertex { vertex_id: "dev.roe.usesItem#link.url" }
- RemovedVertex RemovedVertex { vertex_id: "dev.roe.usesItem:body.aspectRatio" }
- RemovedEdge RemovedEdge { src: "dev.roe.usesItem#link", tgt: "dev.roe.usesItem#link.label", kind: "prop", name: Some("label") }
- RemovedEdge RemovedEdge { src: "dev.roe.usesItem:body", tgt: "dev.roe.usesItem:body.aspectRatio", kind: "prop", name: Some("aspectRatio") }
- RemovedEdge RemovedEdge { src: "dev.roe.usesItem:body.aspectRatio", tgt: "dev.roe.defs#aspectRatio", kind: "ref", name: None }
- RemovedEdge RemovedEdge { src: "dev.roe.usesItem:body.links:items", tgt: "dev.roe.usesItem#link", kind: "ref", name: None }
- KindChanged KindChanged { vertex_id: "dev.roe.usesItem:body.image", old_kind: "blob", new_kind: "ref" }
- ConstraintAdded ConstraintAdded { vertex_id: "dev.roe.usesItem:body.image", sort: "ref", value: "community.lexicon.app.defs#image" }
- ConstraintTightened ConstraintTightened { vertex_id: "dev.roe.usesItem:body.links:items", sort: "ref", old_value: "#link", new_value: "community.lexicon.app.defs#link" }
Non-Breaking Changes (4)
- AddedVertex AddedVertex { vertex_id: "community.lexicon.app.defs#image" }
- AddedVertex AddedVertex { vertex_id: "community.lexicon.app.defs#link" }
- AddedEdge AddedEdge { src: "dev.roe.usesItem:body.image", tgt: "community.lexicon.app.defs#image", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "dev.roe.usesItem:body.links:items", tgt: "community.lexicon.app.defs#link", kind: "ref", name: None }
Migration Guidance
Removed Elements
RemovedVertex { vertex_id: "dev.roe.defs#aspectRatio" }RemovedVertex { vertex_id: "dev.roe.usesItem#link" }RemovedVertex { vertex_id: "dev.roe.usesItem#link.label" }RemovedVertex { vertex_id: "dev.roe.usesItem#link.url" }RemovedVertex { vertex_id: "dev.roe.usesItem:body.aspectRatio" }
Added Elements
AddedVertex { vertex_id: "community.lexicon.app.defs#image" }AddedVertex { vertex_id: "community.lexicon.app.defs#link" }
Constraint Changes
- ConstraintAdded ConstraintAdded { vertex_id: "dev.roe.usesItem:body.image", sort: "ref", value: "community.lexicon.app.defs#image" }
- ConstraintTightened ConstraintTightened { vertex_id: "dev.roe.usesItem:body.links:items", sort: "ref", old_value: "#link", new_value: "community.lexicon.app.defs#link" }
Additional Notes
- Breaking: RequiredEdgeRemoved { vertex_id: "dev.roe.usesItem#link", src: "dev.roe.usesItem#link", tgt: "dev.roe.usesItem#link.url", kind: "prop", name: Some("url") }
- Breaking: RemovedEdge { src: "dev.roe.usesItem#link", tgt: "dev.roe.usesItem#link.label", kind: "prop", name: Some("label") }
- Breaking: RemovedEdge { src: "dev.roe.usesItem:body", tgt: "dev.roe.usesItem:body.aspectRatio", kind: "prop", name: Some("aspectRatio") }
- Breaking: RemovedEdge { src: "dev.roe.usesItem:body.aspectRatio", tgt: "dev.roe.defs#aspectRatio", kind: "ref", name: None }
- Breaking: RemovedEdge { src: "dev.roe.usesItem:body.links:items", tgt: "dev.roe.usesItem#link", kind: "ref", name: None }
- Breaking: KindChanged { vertex_id: "dev.roe.usesItem:body.image", old_kind: "blob", new_kind: "ref" }
- Non-breaking: AddedEdge { src: "dev.roe.usesItem:body.image", tgt: "community.lexicon.app.defs#image", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "dev.roe.usesItem:body.links:items", tgt: "community.lexicon.app.defs#link", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
-
"link": {
5
-
"properties": {
6
-
"label": {
7
-
"maxGraphemes": 64,
8
-
"maxLength": 640,
9
-
"type": "string"
10
-
},
11
-
"url": {
12
-
"format": "uri",
13
-
"type": "string"
14
-
}
15
-
},
16
-
"required": [
17
-
"url"
18
-
],
19
-
"type": "object"
20
-
},
21
4
"main": {
22
5
"description": "A single item on the /uses page, belonging to a dev.roe.usesCategory.",
23
6
"key": "tid",
24
7
"record": {
25
8
"properties": {
26
-
"aspectRatio": {
27
-
"description": "Intrinsic pixel dimensions of `image`.",
28
-
"ref": "dev.roe.defs#aspectRatio",
29
-
"type": "ref"
30
-
},
31
9
"category": {
32
10
"description": "Strong-ref to the parent dev.roe.usesCategory record.",
33
11
"ref": "com.atproto.repo.strongRef",
34
12
"type": "ref"
35
13
},
36
14
"createdAt": {
37
15
"format": "datetime",
38
16
"type": "string"
39
17
},
40
18
"description": {
41
19
"maxGraphemes": 2500,
42
20
"maxLength": 25000,
43
21
"type": "string"
44
22
},
45
23
"image": {
46
-
"accept": [
47
-
"image/*"
48
-
],
49
-
"maxSize": 5000000,
50
-
"type": "blob"
24
+
"description": "Product shot or screenshot. Grid categories render it; list categories ignore it.",
25
+
"ref": "community.lexicon.app.defs#image",
26
+
"type": "ref"
51
27
},
52
28
"links": {
53
29
"items": {
54
-
"ref": "#link",
30
+
"ref": "community.lexicon.app.defs#link",
55
31
"type": "ref"
56
32
},
57
33
"maxLength": 32,
58
34
"type": "array"
59
35
},
60
36
"name": {
61
37
"maxGraphemes": 256,
62
38
"maxLength": 2560,
63
39
"type": "string"
64
40
},
65
41
"order": {
66
42
"default": 100,
67
43
"description": "Lower values render first within the category. Defaults to 100 in the editor.",
68
44
"type": "integer"
69
45
}
70
46
},
71
47
"required": [
72
48
"category",
73
49
"name",
74
50
"createdAt"
75
51
],
76
52
"type": "object"
77
53
},
78
54
"type": "record"
79
55
}
80
56
},
81
57
"id": "dev.roe.usesItem",
82
58
"lexicon": 1
83
59
}