dev.tsunagite.getLeaderboard

tsunagite.dev

Schema Diff

+8 -0

From

CID
bafyreigdyhradwa...
Indexed At
2026-08-07 06:29 UTC
View this version

To

CID
bafyreigy7uzgepp...
Indexed At
2026-08-07 07:16 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 4 non-breaking changes.

Non-Breaking Changes (4)
  • AddedVertex AddedVertex { vertex_id: "dev.tsunagite.getLeaderboard#leaderboard.componentOrder" }
  • AddedVertex AddedVertex { vertex_id: "dev.tsunagite.getLeaderboard#leaderboard.componentOrder:items" }
  • 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.componentOrder", tgt: "dev.tsunagite.getLeaderboard#leaderboard.componentOrder:items", kind: "items", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "dev.tsunagite.getLeaderboard#leaderboard.componentOrder" }
  • AddedVertex { vertex_id: "dev.tsunagite.getLeaderboard#leaderboard.componentOrder:items" }

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

Compare Other Versions

Lexicon Garden

@