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