dev.tsunagite.chart
Schema Diff
+9 -1
Compatibility Analysis
Breaking Changes Detected
1 breaking change, 5 non-breaking changes.
Breaking Changes (1)
- RemovedEdge RemovedEdge { src: "dev.tsunagite.chart:body.difficulty", tgt: "dev.tsunagite.chart:body.difficulty:variant1", kind: "variant", name: Some("dev.tsunagite.types#typedRef") }
Non-Breaking Changes (5)
- AddedVertex AddedVertex { vertex_id: "dev.tsunagite.chart:body.createdAt" }
- AddedVertex AddedVertex { vertex_id: "dev.tsunagite.chart:body.updatedAt" }
- AddedEdge AddedEdge { src: "dev.tsunagite.chart:body", tgt: "dev.tsunagite.chart:body.createdAt", kind: "prop", name: Some("createdAt") }
- AddedEdge AddedEdge { src: "dev.tsunagite.chart:body", tgt: "dev.tsunagite.chart:body.updatedAt", kind: "prop", name: Some("updatedAt") }
- AddedEdge AddedEdge { src: "dev.tsunagite.chart:body.difficulty", tgt: "dev.tsunagite.chart:body.difficulty:variant1", kind: "variant", name: Some("dev.tsunagite.defs#typedRef") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "dev.tsunagite.chart:body.createdAt" }AddedVertex { vertex_id: "dev.tsunagite.chart:body.updatedAt" }
Additional Notes
- Breaking: RemovedEdge { src: "dev.tsunagite.chart:body.difficulty", tgt: "dev.tsunagite.chart:body.difficulty:variant1", kind: "variant", name: Some("dev.tsunagite.types#typedRef") }
- Non-breaking: AddedEdge { src: "dev.tsunagite.chart:body", tgt: "dev.tsunagite.chart:body.createdAt", kind: "prop", name: Some("createdAt") }
- Non-breaking: AddedEdge { src: "dev.tsunagite.chart:body", tgt: "dev.tsunagite.chart:body.updatedAt", kind: "prop", name: Some("updatedAt") }
- Non-breaking: AddedEdge { src: "dev.tsunagite.chart:body.difficulty", tgt: "dev.tsunagite.chart:body.difficulty:variant1", kind: "variant", name: Some("dev.tsunagite.defs#typedRef") }
1
1
{
2
2
"id": "dev.tsunagite.chart",
3
3
"defs": {
4
4
"main": {
5
5
"key": "any",
6
6
"type": "record",
7
7
"record": {
8
8
"type": "object",
9
9
"required": [
10
10
"game",
11
11
"song",
12
12
"difficulty",
13
13
"rating"
14
14
],
15
15
"properties": {
16
16
"game": {
17
17
"type": "string",
18
18
"format": "at-uri",
19
19
"description": "The game this chart is included in. URI must point to a record of type `dev.tsunagite.game`."
20
20
},
21
21
"song": {
22
22
"type": "string",
23
23
"format": "at-uri",
24
24
"description": "The song this chart is for. URI must point to a record of type `dev.tsunagite.song`."
25
25
},
26
26
"jacket": {
27
27
"type": "blob",
28
28
"accept": [
29
29
"image/png",
30
30
"image/jpeg",
31
31
"image/jxl",
32
32
"image/webp"
33
33
],
34
34
"maxSize": 8000000,
35
35
"description": "The jacket or banner art of this chart, for display in UI. Will fall back to the song jacket if not present"
36
36
},
37
37
"rating": {
38
38
"type": "string",
39
39
"description": "The numeric difficulty rating displayed to players, formatted as a string to support decimal or + difficulties."
40
40
},
41
+
"createdAt": {
42
+
"type": "string",
43
+
"format": "datetime"
44
+
},
45
+
"updatedAt": {
46
+
"type": "string",
47
+
"format": "datetime"
48
+
},
41
49
"difficulty": {
42
50
"refs": [
43
51
"dev.tsunagite.difficulty",
44
-
"dev.tsunagite.types#typedRef"
52
+
"dev.tsunagite.defs#typedRef"
45
53
],
46
54
"type": "union",
47
55
"description": "The difficulty slot this chart is placed in. Can be an inline definition or a reference to a standard-defined difficulty slot."
48
56
},
49
57
"jacketArtist": {
50
58
"ref": "dev.tsunagite.translatable",
51
59
"type": "ref",
52
60
"description": "The name of the jacket artist for this chart."
53
61
},
54
62
"rankedVersions": {
55
63
"type": "array",
56
64
"items": {
57
65
"type": "bytes",
58
66
"maxLength": 16,
59
67
"minLength": 16
60
68
},
61
69
"description": "The md5 hashes of any versions of the chart that are up-to-date enough to be leaderboard-legal. Optional if you will not perform leaderboard resets upon any chart changes."
62
70
}
63
71
}
64
72
},
65
73
"description": "A chart included in a game hosting leaderboards via Tsunagite."
66
74
}
67
75
},
68
76
"$type": "com.atproto.lexicon.schema",
69
77
"lexicon": 1,
70
78
"description": "Definitions related to charts included in games hosting leaderboards via Tsunagite."
71
79
}