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