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

Compare Other Versions

Lexicon Garden

@