at.celest.temp.level
Schema Diff
+51 -3
Compatibility Analysis
Breaking Changes Detected
4 breaking changes, 10 non-breaking changes.
Breaking Changes (4)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "at.celest.temp.level#goldberriesInformation", src: "at.celest.temp.level#goldberriesInformation", tgt: "at.celest.temp.level#goldberriesInformation.link", kind: "prop", name: Some("link") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "at.celest.temp.level#hardclearsInformation", src: "at.celest.temp.level#hardclearsInformation", tgt: "at.celest.temp.level#hardclearsInformation.link", kind: "prop", name: Some("link") }
- ConstraintAdded ConstraintAdded { vertex_id: "at.celest.temp.level#difficulty.color", sort: "knownValues", value: "[\"green\",\"yellow\",\"red\",\"cracked\"]" }
- ConstraintAdded ConstraintAdded { vertex_id: "at.celest.temp.level#difficulty.category", sort: "knownValues", value: "[\"beginner\",\"intermediate\",\"advanced\",\"expert\",\"grandmaster\",\"grandmaster+1\",\"grandmaster+2\",\"grandmaster+3\",\"grandmaster+4\"]" }
Non-Breaking Changes (10)
- AddedVertex AddedVertex { vertex_id: "at.celest.temp.level#goldberriesInformation" }
- AddedVertex AddedVertex { vertex_id: "at.celest.temp.level#goldberriesInformation.link" }
- AddedVertex AddedVertex { vertex_id: "at.celest.temp.level#goldberriesInformation.tier" }
- AddedVertex AddedVertex { vertex_id: "at.celest.temp.level#hardclearsInformation" }
- AddedVertex AddedVertex { vertex_id: "at.celest.temp.level#hardclearsInformation.clearCount" }
- AddedVertex AddedVertex { vertex_id: "at.celest.temp.level#hardclearsInformation.link" }
- AddedVertex AddedVertex { vertex_id: "at.celest.temp.level#hardclearsInformation.starRating" }
- AddedEdge AddedEdge { src: "at.celest.temp.level#goldberriesInformation", tgt: "at.celest.temp.level#goldberriesInformation.tier", kind: "prop", name: Some("tier") }
- AddedEdge AddedEdge { src: "at.celest.temp.level#hardclearsInformation", tgt: "at.celest.temp.level#hardclearsInformation.clearCount", kind: "prop", name: Some("clearCount") }
- AddedEdge AddedEdge { src: "at.celest.temp.level#hardclearsInformation", tgt: "at.celest.temp.level#hardclearsInformation.starRating", kind: "prop", name: Some("starRating") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "at.celest.temp.level#goldberriesInformation" }AddedVertex { vertex_id: "at.celest.temp.level#goldberriesInformation.link" }AddedVertex { vertex_id: "at.celest.temp.level#goldberriesInformation.tier" }AddedVertex { vertex_id: "at.celest.temp.level#hardclearsInformation" }AddedVertex { vertex_id: "at.celest.temp.level#hardclearsInformation.clearCount" }AddedVertex { vertex_id: "at.celest.temp.level#hardclearsInformation.link" }AddedVertex { vertex_id: "at.celest.temp.level#hardclearsInformation.starRating" }
Constraint Changes
- ConstraintAdded ConstraintAdded { vertex_id: "at.celest.temp.level#difficulty.color", sort: "knownValues", value: "[\"green\",\"yellow\",\"red\",\"cracked\"]" }
- ConstraintAdded ConstraintAdded { vertex_id: "at.celest.temp.level#difficulty.category", sort: "knownValues", value: "[\"beginner\",\"intermediate\",\"advanced\",\"expert\",\"grandmaster\",\"grandmaster+1\",\"grandmaster+2\",\"grandmaster+3\",\"grandmaster+4\"]" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "at.celest.temp.level#goldberriesInformation", src: "at.celest.temp.level#goldberriesInformation", tgt: "at.celest.temp.level#goldberriesInformation.link", kind: "prop", name: Some("link") }
- Breaking: RequiredEdgeAdded { vertex_id: "at.celest.temp.level#hardclearsInformation", src: "at.celest.temp.level#hardclearsInformation", tgt: "at.celest.temp.level#hardclearsInformation.link", kind: "prop", name: Some("link") }
- Non-breaking: AddedEdge { src: "at.celest.temp.level#goldberriesInformation", tgt: "at.celest.temp.level#goldberriesInformation.tier", kind: "prop", name: Some("tier") }
- Non-breaking: AddedEdge { src: "at.celest.temp.level#hardclearsInformation", tgt: "at.celest.temp.level#hardclearsInformation.clearCount", kind: "prop", name: Some("clearCount") }
- Non-breaking: AddedEdge { src: "at.celest.temp.level#hardclearsInformation", tgt: "at.celest.temp.level#hardclearsInformation.starRating", kind: "prop", name: Some("starRating") }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"difficulty": {
5
5
"description": "The general colloquial name to describe the difficulty of a map",
6
6
"properties": {
7
7
"category": {
8
-
"known": [
8
+
"knownValues": [
9
9
"beginner",
10
10
"intermediate",
11
11
"advanced",
12
12
"expert",
13
13
"grandmaster",
14
14
"grandmaster+1",
15
15
"grandmaster+2",
16
16
"grandmaster+3",
17
17
"grandmaster+4"
18
18
],
19
19
"maxLength": 16,
20
20
"type": "string"
21
21
},
22
22
"color": {
23
-
"known": [
23
+
"knownValues": [
24
24
"green",
25
25
"yellow",
26
26
"red",
27
27
"cracked"
28
28
],
29
29
"maxLength": 16,
30
30
"type": "string"
31
31
}
32
32
},
33
33
"required": [
34
34
"category"
35
35
],
36
36
"type": "object"
37
37
},
38
+
"goldberriesInformation": {
39
+
"description": "Additional information about this level according to goldberries",
40
+
"properties": {
41
+
"link": {
42
+
"description": "A link to this level on goldberries",
43
+
"format": "uri",
44
+
"type": "string"
45
+
},
46
+
"tier": {
47
+
"description": "The difficulty tier according to goldberries",
48
+
"minimum": 1,
49
+
"type": "integer"
50
+
}
51
+
},
52
+
"required": [
53
+
"link"
54
+
],
55
+
"type": "object"
56
+
},
57
+
"hardclearsInformation": {
58
+
"description": "Additional information about this level according to hardclears",
59
+
"properties": {
60
+
"clearCount": {
61
+
"description": "How many verified clears this level has",
62
+
"minimum": 1,
63
+
"type": "integer"
64
+
},
65
+
"link": {
66
+
"description": "A link to this level on hardclears",
67
+
"format": "uri",
68
+
"type": "string"
69
+
},
70
+
"starRating": {
71
+
"description": "The star rating according to hardclears as a string (since lexicon v1 doesn't have a float type apparently). Formatted as '0.00'",
72
+
"maxGraphemes": 4,
73
+
"maxLength": 4,
74
+
"minGraphemes": 4,
75
+
"minLength": 4,
76
+
"type": "string"
77
+
}
78
+
},
79
+
"required": [
80
+
"link"
81
+
],
82
+
"type": "object"
83
+
},
38
84
"main": {
39
85
"description": "A level you can play in Celeste",
40
86
"key": "tid",
41
87
"record": {
42
88
"properties": {
43
89
"banner": {
90
+
"description": "A screenshot or banner image representing the level",
44
91
"type": "blob"
45
92
},
46
93
"difficulty": {
94
+
"description": "The agreed upon difficulty (or difficulty it's listed as in it's pack) for this level",
47
95
"ref": "#difficulty",
48
96
"type": "ref"
49
97
},
50
98
"name": {
51
99
"description": "The name of a level",
52
100
"maxGraphemes": 128,
53
101
"maxLength": 1280,
54
102
"minLength": 1,
55
103
"type": "string"
56
104
},
57
105
"sid": {
58
-
"description": "The level ID the game uses to identify",
106
+
"description": "The level ID the game uses to identify this level",
59
107
"maxGraphemes": 64,
60
108
"maxLength": 640,
61
109
"minLength": 1,
62
110
"type": "string"
63
111
}
64
112
},
65
113
"required": [
66
114
"sid"
67
115
],
68
116
"type": "object"
69
117
},
70
118
"type": "record"
71
119
}
72
120
},
73
121
"id": "at.celest.temp.level",
74
122
"lexicon": 1
75
123
}