app.offprint.publication
Schema Diff
+38 -1
Compatibility Analysis
Breaking Changes Detected
1 breaking change, 16 non-breaking changes.
Breaking Changes (1)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.offprint.publication#navItem", src: "app.offprint.publication#navItem", tgt: "app.offprint.publication#navItem.label", kind: "prop", name: Some("label") }
Non-Breaking Changes (16)
- AddedVertex AddedVertex { vertex_id: "app.offprint.publication#navItem" }
- AddedVertex AddedVertex { vertex_id: "app.offprint.publication#navItem.children" }
- AddedVertex AddedVertex { vertex_id: "app.offprint.publication#navItem.children:items" }
- AddedVertex AddedVertex { vertex_id: "app.offprint.publication#navItem.external" }
- AddedVertex AddedVertex { vertex_id: "app.offprint.publication#navItem.href" }
- AddedVertex AddedVertex { vertex_id: "app.offprint.publication#navItem.label" }
- AddedVertex AddedVertex { vertex_id: "app.offprint.publication:body.navigation" }
- AddedVertex AddedVertex { vertex_id: "app.offprint.publication:body.navigation:items" }
- AddedEdge AddedEdge { src: "app.offprint.publication#navItem", tgt: "app.offprint.publication#navItem.children", kind: "prop", name: Some("children") }
- AddedEdge AddedEdge { src: "app.offprint.publication#navItem", tgt: "app.offprint.publication#navItem.external", kind: "prop", name: Some("external") }
- AddedEdge AddedEdge { src: "app.offprint.publication#navItem", tgt: "app.offprint.publication#navItem.href", kind: "prop", name: Some("href") }
- AddedEdge AddedEdge { src: "app.offprint.publication#navItem.children", tgt: "app.offprint.publication#navItem.children:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "app.offprint.publication#navItem.children:items", tgt: "app.offprint.publication#navItem", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "app.offprint.publication:body", tgt: "app.offprint.publication:body.navigation", kind: "prop", name: Some("navigation") }
- AddedEdge AddedEdge { src: "app.offprint.publication:body.navigation", tgt: "app.offprint.publication:body.navigation:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "app.offprint.publication:body.navigation:items", tgt: "app.offprint.publication#navItem", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "app.offprint.publication#navItem" }AddedVertex { vertex_id: "app.offprint.publication#navItem.children" }AddedVertex { vertex_id: "app.offprint.publication#navItem.children:items" }AddedVertex { vertex_id: "app.offprint.publication#navItem.external" }AddedVertex { vertex_id: "app.offprint.publication#navItem.href" }AddedVertex { vertex_id: "app.offprint.publication#navItem.label" }AddedVertex { vertex_id: "app.offprint.publication:body.navigation" }AddedVertex { vertex_id: "app.offprint.publication:body.navigation:items" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "app.offprint.publication#navItem", src: "app.offprint.publication#navItem", tgt: "app.offprint.publication#navItem.label", kind: "prop", name: Some("label") }
- Non-breaking: AddedEdge { src: "app.offprint.publication#navItem", tgt: "app.offprint.publication#navItem.children", kind: "prop", name: Some("children") }
- Non-breaking: AddedEdge { src: "app.offprint.publication#navItem", tgt: "app.offprint.publication#navItem.external", kind: "prop", name: Some("external") }
- Non-breaking: AddedEdge { src: "app.offprint.publication#navItem", tgt: "app.offprint.publication#navItem.href", kind: "prop", name: Some("href") }
- Non-breaking: AddedEdge { src: "app.offprint.publication#navItem.children", tgt: "app.offprint.publication#navItem.children:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "app.offprint.publication#navItem.children:items", tgt: "app.offprint.publication#navItem", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "app.offprint.publication:body", tgt: "app.offprint.publication:body.navigation", kind: "prop", name: Some("navigation") }
- Non-breaking: AddedEdge { src: "app.offprint.publication:body.navigation", tgt: "app.offprint.publication:body.navigation:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "app.offprint.publication:body.navigation:items", tgt: "app.offprint.publication#navItem", kind: "ref", name: None }
1
1
{
2
2
"id": "app.offprint.publication",
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
"publication"
11
11
],
12
12
"properties": {
13
+
"navigation": {
14
+
"type": "array",
15
+
"items": {
16
+
"ref": "#navItem",
17
+
"type": "ref"
18
+
},
19
+
"description": "Ordered top-level navigation items. Omitted when the publication uses the default navigation."
20
+
},
13
21
"publication": {
14
22
"type": "string",
15
23
"format": "at-uri",
16
-
"required": true,
17
24
"description": "Required AT-URI to a `site.standard.publication` compatible record."
18
25
}
19
26
}
20
27
}
28
+
},
29
+
"navItem": {
30
+
"type": "object",
31
+
"required": [
32
+
"label"
33
+
],
34
+
"properties": {
35
+
"href": {
36
+
"type": "string",
37
+
"description": "Resolved destination: a root-relative path or an absolute URL. Omitted for a dropdown-only label."
38
+
},
39
+
"label": {
40
+
"type": "string",
41
+
"description": "Display label for the navigation item.",
42
+
"maxGraphemes": 200
43
+
},
44
+
"children": {
45
+
"type": "array",
46
+
"items": {
47
+
"ref": "#navItem",
48
+
"type": "ref"
49
+
},
50
+
"description": "Nested items that render as a dropdown. Up to two levels deep."
51
+
},
52
+
"external": {
53
+
"type": "boolean",
54
+
"default": false,
55
+
"description": "Whether the link opens an external site."
56
+
}
57
+
}
21
58
}
22
59
},
23
60
"$type": "com.atproto.lexicon.schema",
24
61
"lexicon": 1
25
62
}