space.opendeck.card
Schema Diff
+17 -8
Compatibility Analysis
Breaking Changes Detected
4 breaking changes, 7 non-breaking changes.
Breaking Changes (4)
- RemovedVertex RemovedVertex { vertex_id: "space.opendeck.card:body.phonetic" }
- RemovedEdge RemovedEdge { src: "space.opendeck.card:body", tgt: "space.opendeck.card:body.phonetic", kind: "prop", name: Some("phonetic") }
- ConstraintTightened ConstraintTightened { vertex_id: "space.opendeck.card:body.deck", sort: "maxLength", old_value: "10000", new_value: "640" }
- ConstraintTightened ConstraintTightened { vertex_id: "space.opendeck.card:body.deck", sort: "maxGraphemes", old_value: "1000", new_value: "64" }
Non-Breaking Changes (7)
- AddedVertex AddedVertex { vertex_id: "space.opendeck.card:body.backReading" }
- AddedVertex AddedVertex { vertex_id: "space.opendeck.card:body.frontReading" }
- AddedVertex AddedVertex { vertex_id: "space.opendeck.card:body.updatedAt" }
- AddedEdge AddedEdge { src: "space.opendeck.card:body", tgt: "space.opendeck.card:body.backReading", kind: "prop", name: Some("backReading") }
- AddedEdge AddedEdge { src: "space.opendeck.card:body", tgt: "space.opendeck.card:body.frontReading", kind: "prop", name: Some("frontReading") }
- AddedEdge AddedEdge { src: "space.opendeck.card:body", tgt: "space.opendeck.card:body.updatedAt", kind: "prop", name: Some("updatedAt") }
- ConstraintRemoved ConstraintRemoved { vertex_id: "space.opendeck.card:body.deck", sort: "format" }
Migration Guidance
Removed Elements
RemovedVertex { vertex_id: "space.opendeck.card:body.phonetic" }
Added Elements
AddedVertex { vertex_id: "space.opendeck.card:body.backReading" }AddedVertex { vertex_id: "space.opendeck.card:body.frontReading" }AddedVertex { vertex_id: "space.opendeck.card:body.updatedAt" }
Constraint Changes
- ConstraintTightened ConstraintTightened { vertex_id: "space.opendeck.card:body.deck", sort: "maxGraphemes", old_value: "1000", new_value: "64" }
- ConstraintTightened ConstraintTightened { vertex_id: "space.opendeck.card:body.deck", sort: "maxLength", old_value: "10000", new_value: "640" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "space.opendeck.card:body.deck", sort: "format" }
Additional Notes
- Breaking: RemovedEdge { src: "space.opendeck.card:body", tgt: "space.opendeck.card:body.phonetic", kind: "prop", name: Some("phonetic") }
- Non-breaking: AddedEdge { src: "space.opendeck.card:body", tgt: "space.opendeck.card:body.backReading", kind: "prop", name: Some("backReading") }
- Non-breaking: AddedEdge { src: "space.opendeck.card:body", tgt: "space.opendeck.card:body.frontReading", kind: "prop", name: Some("frontReading") }
- Non-breaking: AddedEdge { src: "space.opendeck.card:body", tgt: "space.opendeck.card:body.updatedAt", kind: "prop", name: Some("updatedAt") }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
5
"description": "A flashcard belonging to a deck.",
6
6
"key": "tid",
7
7
"record": {
8
8
"properties": {
9
9
"audio": {
10
10
"accept": [
11
11
"audio/*"
12
12
],
13
13
"description": "Optional audio blob (pronunciation).",
14
14
"maxSize": 5000000,
15
15
"type": "blob"
16
16
},
17
17
"back": {
18
18
"maxGraphemes": 2000,
19
19
"maxLength": 20000,
20
20
"type": "string"
21
21
},
22
+
"backReading": {
23
+
"description": "Reading of the back, e.g. IPA, pinyin or rōmaji.",
24
+
"maxGraphemes": 500,
25
+
"maxLength": 5000,
26
+
"type": "string"
27
+
},
22
28
"createdAt": {
23
29
"format": "datetime",
24
30
"type": "string"
25
31
},
26
32
"deck": {
27
-
"description": "AT-URI of the owning deck.",
28
-
"format": "at-uri",
29
-
"maxGraphemes": 1000,
30
-
"maxLength": 10000,
33
+
"description": "Record key (rkey) of the owning deck in the same repo.",
34
+
"maxGraphemes": 64,
35
+
"maxLength": 640,
31
36
"type": "string"
32
37
},
33
38
"examples": {
34
39
"items": {
35
40
"maxGraphemes": 1000,
36
41
"maxLength": 10000,
37
42
"type": "string"
38
43
},
39
44
"maxLength": 20,
40
45
"type": "array"
41
46
},
42
47
"front": {
43
48
"maxGraphemes": 2000,
44
49
"maxLength": 20000,
45
50
"type": "string"
46
51
},
52
+
"frontReading": {
53
+
"description": "Reading of the front, e.g. IPA, pinyin or rōmaji.",
54
+
"maxGraphemes": 500,
55
+
"maxLength": 5000,
56
+
"type": "string"
57
+
},
47
58
"hint": {
48
59
"maxGraphemes": 1000,
49
60
"maxLength": 10000,
50
61
"type": "string"
51
62
},
52
63
"image": {
53
64
"accept": [
54
65
"image/*"
55
66
],
56
67
"description": "Optional image blob shown on the card.",
57
68
"maxSize": 5000000,
58
69
"type": "blob"
59
70
},
60
71
"imageAlt": {
61
72
"description": "Alt text for the image (accessibility).",
62
73
"maxGraphemes": 1000,
63
74
"maxLength": 10000,
64
75
"type": "string"
65
76
},
66
77
"order": {
67
78
"type": "integer"
68
79
},
69
-
"phonetic": {
70
-
"description": "Pronunciation, e.g. IPA or pinyin.",
71
-
"maxGraphemes": 500,
72
-
"maxLength": 5000,
80
+
"updatedAt": {
81
+
"format": "datetime",
73
82
"type": "string"
74
83
}
75
84
},
76
85
"required": [
77
86
"deck",
78
87
"front",
79
88
"back",
80
89
"createdAt"
81
90
],
82
91
"type": "object"
83
92
},
84
93
"type": "record"
85
94
}
86
95
},
87
96
"id": "space.opendeck.card",
88
97
"lexicon": 1
89
98
}