space.opendeck.profile
Schema Diff
+18 -15
Compatibility Analysis
Breaking Changes Detected
8 breaking changes, 4 non-breaking changes.
Breaking Changes (8)
- RemovedVertex RemovedVertex { vertex_id: "space.opendeck.profile:body.reminderTime" }
- RemovedVertex RemovedVertex { vertex_id: "space.opendeck.profile:body.visibleDecks" }
- RemovedVertex RemovedVertex { vertex_id: "space.opendeck.profile:body.visibleDecks:items" }
- RemovedEdge RemovedEdge { src: "space.opendeck.profile:body", tgt: "space.opendeck.profile:body.reminderTime", kind: "prop", name: Some("reminderTime") }
- RemovedEdge RemovedEdge { src: "space.opendeck.profile:body", tgt: "space.opendeck.profile:body.visibleDecks", kind: "prop", name: Some("visibleDecks") }
- RemovedEdge RemovedEdge { src: "space.opendeck.profile:body.visibleDecks", tgt: "space.opendeck.profile:body.visibleDecks:items", kind: "items", name: None }
- ConstraintAdded ConstraintAdded { vertex_id: "space.opendeck.profile:body.reminderDays:items", sort: "minimum", value: "0" }
- ConstraintAdded ConstraintAdded { vertex_id: "space.opendeck.profile:body.reminderDays:items", sort: "maximum", value: "6" }
Non-Breaking Changes (4)
- AddedVertex AddedVertex { vertex_id: "space.opendeck.profile:body.reminderHour" }
- AddedVertex AddedVertex { vertex_id: "space.opendeck.profile:body.shortTermIntervals" }
- AddedEdge AddedEdge { src: "space.opendeck.profile:body", tgt: "space.opendeck.profile:body.reminderHour", kind: "prop", name: Some("reminderHour") }
- AddedEdge AddedEdge { src: "space.opendeck.profile:body", tgt: "space.opendeck.profile:body.shortTermIntervals", kind: "prop", name: Some("shortTermIntervals") }
Migration Guidance
Removed Elements
RemovedVertex { vertex_id: "space.opendeck.profile:body.reminderTime" }RemovedVertex { vertex_id: "space.opendeck.profile:body.visibleDecks" }RemovedVertex { vertex_id: "space.opendeck.profile:body.visibleDecks:items" }
Added Elements
AddedVertex { vertex_id: "space.opendeck.profile:body.reminderHour" }AddedVertex { vertex_id: "space.opendeck.profile:body.shortTermIntervals" }
Constraint Changes
- ConstraintAdded ConstraintAdded { vertex_id: "space.opendeck.profile:body.reminderDays:items", sort: "minimum", value: "0" }
- ConstraintAdded ConstraintAdded { vertex_id: "space.opendeck.profile:body.reminderDays:items", sort: "maximum", value: "6" }
Additional Notes
- Breaking: RemovedEdge { src: "space.opendeck.profile:body", tgt: "space.opendeck.profile:body.reminderTime", kind: "prop", name: Some("reminderTime") }
- Breaking: RemovedEdge { src: "space.opendeck.profile:body", tgt: "space.opendeck.profile:body.visibleDecks", kind: "prop", name: Some("visibleDecks") }
- Breaking: RemovedEdge { src: "space.opendeck.profile:body.visibleDecks", tgt: "space.opendeck.profile:body.visibleDecks:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "space.opendeck.profile:body", tgt: "space.opendeck.profile:body.reminderHour", kind: "prop", name: Some("reminderHour") }
- Non-breaking: AddedEdge { src: "space.opendeck.profile:body", tgt: "space.opendeck.profile:body.shortTermIntervals", kind: "prop", name: Some("shortTermIntervals") }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
5
"description": "OpenDeck profile and synced preferences.",
6
6
"key": "literal:self",
7
7
"record": {
8
8
"properties": {
9
9
"accentColor": {
10
10
"description": "Hex accent color, e.g. #3b82f6.",
11
11
"maxGraphemes": 9,
12
12
"maxLength": 90,
13
13
"type": "string"
14
14
},
15
15
"bio": {
16
16
"maxGraphemes": 2000,
17
17
"maxLength": 20000,
18
18
"type": "string"
19
19
},
20
20
"defaultVisibility": {
21
21
"enum": [
22
22
"public",
23
23
"private"
24
24
],
25
25
"type": "string"
26
26
},
27
27
"reminderDays": {
28
-
"description": "Weekdays 0-6 (Sun-Sat).",
28
+
"description": "Weekdays 0-6 (Sun-Sat); absent means Monday to Friday.",
29
29
"items": {
30
+
"maximum": 6,
31
+
"minimum": 0,
30
32
"type": "integer"
31
33
},
32
34
"maxLength": 7,
33
35
"type": "array"
34
36
},
35
37
"reminderEnabled": {
36
38
"type": "boolean"
37
39
},
38
-
"reminderTime": {
39
-
"description": "Local reminder time, HH:MM.",
40
-
"maxGraphemes": 5,
41
-
"maxLength": 50,
40
+
"reminderHour": {
41
+
"description": "Local hour (0-23) of the study reminder; absent means 19.",
42
+
"maximum": 23,
43
+
"minimum": 0,
44
+
"type": "integer"
45
+
},
46
+
"shortTermIntervals": {
47
+
"description": "Default short-term intervals preset; absent means auto.",
48
+
"enum": [
49
+
"auto",
50
+
"quick",
51
+
"balanced",
52
+
"relaxed",
53
+
"spaced"
54
+
],
42
55
"type": "string"
43
56
},
44
57
"showActivityOnProfile": {
45
58
"type": "boolean"
46
59
},
47
60
"showDecksOnProfile": {
48
61
"type": "boolean"
49
62
},
50
63
"showFollowsOnProfile": {
51
64
"type": "boolean"
52
65
},
53
66
"showProgressOnProfile": {
54
67
"type": "boolean"
55
68
},
56
69
"uiLanguage": {
57
70
"description": "BCP-47 language tag for the OpenDeck interface.",
58
71
"maxGraphemes": 20,
59
72
"maxLength": 200,
60
73
"type": "string"
61
74
},
62
75
"updatedAt": {
63
76
"format": "datetime",
64
77
"type": "string"
65
-
},
66
-
"visibleDecks": {
67
-
"items": {
68
-
"format": "at-uri",
69
-
"maxGraphemes": 1000,
70
-
"maxLength": 10000,
71
-
"type": "string"
72
-
},
73
-
"maxLength": 100,
74
-
"type": "array"
75
78
}
76
79
},
77
80
"type": "object"
78
81
},
79
82
"type": "record"
80
83
}
81
84
},
82
85
"id": "space.opendeck.profile",
83
86
"lexicon": 1
84
87
}