dev.tsunagite.getLeaderboard
Schema Diff
+12 -0
Compatibility Analysis
Backward Compatible
Backward compatible. 8 non-breaking changes.
Non-Breaking Changes (8)
- AddedVertex AddedVertex { vertex_id: "dev.tsunagite.game#scoreComponentMap" }
- AddedVertex AddedVertex { vertex_id: "dev.tsunagite.getLeaderboard#leaderboard.componentOrder" }
- AddedVertex AddedVertex { vertex_id: "dev.tsunagite.getLeaderboard#leaderboard.componentOrder:items" }
- AddedVertex AddedVertex { vertex_id: "dev.tsunagite.getLeaderboard#leaderboard.components" }
- AddedEdge AddedEdge { src: "dev.tsunagite.getLeaderboard#leaderboard", tgt: "dev.tsunagite.getLeaderboard#leaderboard.componentOrder", kind: "prop", name: Some("componentOrder") }
- AddedEdge AddedEdge { src: "dev.tsunagite.getLeaderboard#leaderboard", tgt: "dev.tsunagite.getLeaderboard#leaderboard.components", kind: "prop", name: Some("components") }
- AddedEdge AddedEdge { src: "dev.tsunagite.getLeaderboard#leaderboard.componentOrder", tgt: "dev.tsunagite.getLeaderboard#leaderboard.componentOrder:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "dev.tsunagite.getLeaderboard#leaderboard.components", tgt: "dev.tsunagite.game#scoreComponentMap", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "dev.tsunagite.game#scoreComponentMap" }AddedVertex { vertex_id: "dev.tsunagite.getLeaderboard#leaderboard.componentOrder" }AddedVertex { vertex_id: "dev.tsunagite.getLeaderboard#leaderboard.componentOrder:items" }AddedVertex { vertex_id: "dev.tsunagite.getLeaderboard#leaderboard.components" }
Additional Notes
- Non-breaking: AddedEdge { src: "dev.tsunagite.getLeaderboard#leaderboard", tgt: "dev.tsunagite.getLeaderboard#leaderboard.componentOrder", kind: "prop", name: Some("componentOrder") }
- Non-breaking: AddedEdge { src: "dev.tsunagite.getLeaderboard#leaderboard", tgt: "dev.tsunagite.getLeaderboard#leaderboard.components", kind: "prop", name: Some("components") }
- Non-breaking: AddedEdge { src: "dev.tsunagite.getLeaderboard#leaderboard.componentOrder", tgt: "dev.tsunagite.getLeaderboard#leaderboard.componentOrder:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "dev.tsunagite.getLeaderboard#leaderboard.components", tgt: "dev.tsunagite.game#scoreComponentMap", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"leaderboard": {
5
5
"description": "A sorted leaderboard of associated scores, with an index for assembling longer leaderboards.",
6
6
"properties": {
7
+
"componentOrder": {
8
+
"description": "The order in which components should be displayed in a leaderboard table.",
9
+
"items": {
10
+
"format": "record-key",
11
+
"type": "string"
12
+
},
13
+
"type": "array"
14
+
},
15
+
"components": {
16
+
"ref": "dev.tsunagite.game#scoreComponentMap",
17
+
"type": "ref"
18
+
},
7
19
"cursor": {
8
20
"description": "The integer index of the next score after this slice. If not present, no further scores remain.",
9
21
"minimum": 0,
10
22
"type": "integer"
11
23
},
12
24
"scores": {
13
25
"description": "The scores in this slice of leaderboard, sorted in descending order by the specified property.",
14
26
"items": {
15
27
"ref": "dev.tsunagite.defs#associatedScore",
16
28
"type": "ref"
17
29
},
18
30
"type": "array"
19
31
}
20
32
},
21
33
"type": "object"
22
34
},
23
35
"main": {
24
36
"description": "List the leaderboard for a given chart. Does not require auth.",
25
37
"errors": [
26
38
{
27
39
"description": "No chart matching the given URI was found.",
28
40
"name": "chartNotFound"
29
41
},
30
42
{
31
43
"description": "No score component for the game matching the given ID was found.",
32
44
"name": "invalidComponent"
33
45
},
34
46
{
35
47
"description": "There are fewer scores than the requested cursor point.",
36
48
"name": "cursorOutOfBounds"
37
49
}
38
50
],
39
51
"output": {
40
52
"encoding": "application/json",
41
53
"schema": {
42
54
"ref": "dev.tsunagite.getLeaderboard#leaderboard",
43
55
"type": "ref"
44
56
}
45
57
},
46
58
"parameters": {
47
59
"properties": {
48
60
"chart": {
49
61
"description": "Must point to type `dev.tsunagite.chart`",
50
62
"format": "at-uri",
51
63
"type": "string"
52
64
},
53
65
"cursor": {
54
66
"description": "The index of the highest score to query in this slice.",
55
67
"minimum": 0,
56
68
"type": "integer"
57
69
},
58
70
"inputMethod": {
59
71
"type": "string"
60
72
},
61
73
"limit": {
62
74
"default": 50,
63
75
"description": "How many scores to get in this slice.",
64
76
"maximum": 100,
65
77
"minimum": 1,
66
78
"type": "integer"
67
79
},
68
80
"mode": {
69
81
"type": "string"
70
82
},
71
83
"sortBy": {
72
84
"description": "The ID of the score component to sort the leaderboard by. Will default to the game's default component if not present. Set to `timestamp` to sort by newest/oldest.",
73
85
"format": "record-key",
74
86
"type": "string"
75
87
},
76
88
"versions": {
77
89
"description": "The md5 hashes of the chart versions to list scores for. Will default to the chart's current ranked versions if not present.",
78
90
"items": {
79
91
"maxLength": 16,
80
92
"minLength": 16,
81
93
"type": "bytes"
82
94
},
83
95
"type": "array"
84
96
}
85
97
},
86
98
"required": [
87
99
"chart"
88
100
],
89
101
"type": "params"
90
102
},
91
103
"type": "query"
92
104
}
93
105
},
94
106
"description": "Defnitions related to querying leaderboards hosted via Tsunagite.",
95
107
"id": "dev.tsunagite.getLeaderboard",
96
108
"lexicon": 1
97
109
}