cx.vmx.matadisco
Schema Diff
+35 -17
Compatibility Analysis
Breaking Changes Detected
7 breaking changes, 11 non-breaking changes.
Breaking Changes (7)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "cx.vmx.matadisco#preview", src: "cx.vmx.matadisco#preview", tgt: "cx.vmx.matadisco#preview.mimeType", kind: "prop", name: Some("mimeType") }
- RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "cx.vmx.matadisco:body.preview", src: "cx.vmx.matadisco:body.preview", tgt: "cx.vmx.matadisco:body.preview.mimeType", kind: "prop", name: Some("mimeType") }
- RemovedVertex RemovedVertex { vertex_id: "cx.vmx.matadisco:body.preview.mimeType" }
- RemovedVertex RemovedVertex { vertex_id: "cx.vmx.matadisco:body.preview.url" }
- RemovedEdge RemovedEdge { src: "cx.vmx.matadisco:body.preview", tgt: "cx.vmx.matadisco:body.preview.url", kind: "prop", name: Some("url") }
- KindChanged KindChanged { vertex_id: "cx.vmx.matadisco:body.preview", old_kind: "object", new_kind: "ref" }
- ConstraintAdded ConstraintAdded { vertex_id: "cx.vmx.matadisco:body.preview", sort: "ref", value: "#preview" }
Non-Breaking Changes (11)
- AddedVertex AddedVertex { vertex_id: "cx.vmx.matadisco#preview" }
- AddedVertex AddedVertex { vertex_id: "cx.vmx.matadisco#preview.mimeType" }
- AddedVertex AddedVertex { vertex_id: "cx.vmx.matadisco#preview.url" }
- AddedVertex AddedVertex { vertex_id: "cx.vmx.matadisco#tags" }
- AddedVertex AddedVertex { vertex_id: "cx.vmx.matadisco#tags:items" }
- AddedVertex AddedVertex { vertex_id: "cx.vmx.matadisco:body.tags" }
- AddedEdge AddedEdge { src: "cx.vmx.matadisco#preview", tgt: "cx.vmx.matadisco#preview.url", kind: "prop", name: Some("url") }
- AddedEdge AddedEdge { src: "cx.vmx.matadisco#tags", tgt: "cx.vmx.matadisco#tags:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "cx.vmx.matadisco:body", tgt: "cx.vmx.matadisco:body.tags", kind: "prop", name: Some("tags") }
- AddedEdge AddedEdge { src: "cx.vmx.matadisco:body.preview", tgt: "cx.vmx.matadisco#preview", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "cx.vmx.matadisco:body.tags", tgt: "cx.vmx.matadisco#tags", kind: "ref", name: None }
Migration Guidance
Removed Elements
RemovedVertex { vertex_id: "cx.vmx.matadisco:body.preview.mimeType" }RemovedVertex { vertex_id: "cx.vmx.matadisco:body.preview.url" }
Added Elements
AddedVertex { vertex_id: "cx.vmx.matadisco#preview" }AddedVertex { vertex_id: "cx.vmx.matadisco#preview.mimeType" }AddedVertex { vertex_id: "cx.vmx.matadisco#preview.url" }AddedVertex { vertex_id: "cx.vmx.matadisco#tags" }AddedVertex { vertex_id: "cx.vmx.matadisco#tags:items" }AddedVertex { vertex_id: "cx.vmx.matadisco:body.tags" }
Constraint Changes
- ConstraintAdded ConstraintAdded { vertex_id: "cx.vmx.matadisco:body.preview", sort: "ref", value: "#preview" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "cx.vmx.matadisco#preview", src: "cx.vmx.matadisco#preview", tgt: "cx.vmx.matadisco#preview.mimeType", kind: "prop", name: Some("mimeType") }
- Breaking: RequiredEdgeRemoved { vertex_id: "cx.vmx.matadisco:body.preview", src: "cx.vmx.matadisco:body.preview", tgt: "cx.vmx.matadisco:body.preview.mimeType", kind: "prop", name: Some("mimeType") }
- Breaking: RemovedEdge { src: "cx.vmx.matadisco:body.preview", tgt: "cx.vmx.matadisco:body.preview.url", kind: "prop", name: Some("url") }
- Breaking: KindChanged { vertex_id: "cx.vmx.matadisco:body.preview", old_kind: "object", new_kind: "ref" }
- Non-breaking: AddedEdge { src: "cx.vmx.matadisco#preview", tgt: "cx.vmx.matadisco#preview.url", kind: "prop", name: Some("url") }
- Non-breaking: AddedEdge { src: "cx.vmx.matadisco#tags", tgt: "cx.vmx.matadisco#tags:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "cx.vmx.matadisco:body", tgt: "cx.vmx.matadisco:body.tags", kind: "prop", name: Some("tags") }
- Non-breaking: AddedEdge { src: "cx.vmx.matadisco:body.preview", tgt: "cx.vmx.matadisco#preview", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "cx.vmx.matadisco:body.tags", tgt: "cx.vmx.matadisco#tags", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
5
"description": "A Matadisco record",
6
-
"key": "tid",
6
+
"key": "any",
7
7
"record": {
8
8
"properties": {
9
9
"preview": {
10
-
"description": "Preview of the data",
11
-
"properties": {
12
-
"mimeType": {
13
-
"description": "The media type the preview has",
14
-
"type": "string"
15
-
},
16
-
"url": {
17
-
"description": "The URL to the preview",
18
-
"format": "uri",
19
-
"type": "string"
20
-
}
21
-
},
22
-
"required": [
23
-
"mimeType"
24
-
],
25
-
"type": "object"
10
+
"ref": "#preview",
11
+
"type": "ref"
26
12
},
27
13
"publishedAt": {
28
14
"description": "The time the original metadata/data was published",
29
15
"format": "datetime",
30
16
"type": "string"
31
17
},
32
18
"resource": {
33
19
"description": "A URI that links to resource containing the metadata",
34
20
"format": "uri",
35
21
"type": "string"
22
+
},
23
+
"tags": {
24
+
"ref": "#tags",
25
+
"type": "ref"
36
26
}
37
27
},
38
28
"required": [
39
29
"publishedAt",
40
30
"resource"
41
31
],
42
32
"type": "object"
43
33
},
44
34
"type": "record"
35
+
},
36
+
"preview": {
37
+
"description": "Preview of the data",
38
+
"properties": {
39
+
"mimeType": {
40
+
"description": "The media type the preview has",
41
+
"type": "string"
42
+
},
43
+
"url": {
44
+
"description": "The URL to the preview",
45
+
"format": "uri",
46
+
"type": "string"
47
+
}
48
+
},
49
+
"required": [
50
+
"mimeType"
51
+
],
52
+
"type": "object"
53
+
},
54
+
"tags": {
55
+
"description": "Tags that describe the metadata. A tag might have a corresponding top-level key with the same name.",
56
+
"items": {
57
+
"maxLength": 200,
58
+
"minLength": 1,
59
+
"type": "string"
60
+
},
61
+
"maxLength": 20,
62
+
"type": "array"
45
63
}
46
64
},
47
65
"id": "cx.vmx.matadisco",
48
66
"lexicon": 1
49
67
}