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