A record describing a game hosting leaderboards via Tsunagite.
any
Any valid record key
Properties
defaultComponent
string
record-key
Required
The default component for leaderboard sorting.
inputMethods
array
of
string
Optional
An array of usable input methods for the game. Optional if the game only has one input method or doesn't separate leaderboards by method.
judgments
array
of
ref
dev.tsunagite.types#indexable
Required
The obtainable judgments during gameplay.
logo
blob
Optional
The logo of the game, for display in UI.
maxSize: 8.0 MBmodes
array
of
string
Optional
An array of playable game modes with different gameplay configurations. Optional if the game only has one mode.
name
ref
dev.tsunagite.translatable
Required
The human-readable name of the game, for display in UI.
scoreComponents
object
Required
All the components of a score in the game, including grades, lamps, EX score, and whatever other constructs are used.
View raw schema
{
"key": "any",
"type": "record",
"record": {
"type": "object",
"required": [
"name",
"judgments",
"scoreComponents",
"defaultComponent"
],
"properties": {
"logo": {
"type": "blob",
"accept": [
"image/png",
"image/jpeg",
"image/jxl",
"image/webp"
],
"maxSize": 8000000,
"description": "The logo of the game, for display in UI."
},
"name": {
"ref": "dev.tsunagite.translatable",
"type": "ref",
"description": "The human-readable name of the game, for display in UI."
},
"modes": {
"type": "array",
"items": {
"type": "string",
"description": "Can be tokens or raw strings.",
"knownValues": [
"dev.tsunagite.singles",
"dev.tsunagite.doubles"
]
},
"description": "An array of playable game modes with different gameplay configurations. Optional if the game only has one mode."
},
"judgments": {
"type": "array",
"items": {
"ref": "dev.tsunagite.types#indexable",
"type": "ref",
"description": "Indices will be displayed in ascending order."
},
"description": "The obtainable judgments during gameplay."
},
"inputMethods": {
"type": "array",
"items": {
"type": "string",
"description": "Can be tokens or raw strings.",
"knownValues": [
"dev.tsunagite.keyboard",
"dev.tsunagite.gamepad"
]
},
"description": "An array of usable input methods for the game. Optional if the game only has one input method or doesn't separate leaderboards by method."
},
"scoreComponents": {
"type": "object",
"properties": {
"$keyFormat": {
"type": "string",
"format": "record-key",
"maxLength": 32,
"minLength": 1
},
"$valueType": {
"refs": [
"#enum",
"#points",
"#percentage",
"#text"
],
"type": "union",
"description": "If you need a component type that doesn't exist yet, contact @lemmaeof.gay"
}
},
"description": "All the components of a score in the game, including grades, lamps, EX score, and whatever other constructs are used."
},
"defaultComponent": {
"type": "string",
"format": "record-key",
"description": "The default component for leaderboard sorting."
}
}
},
"description": "A record describing a game hosting leaderboards via Tsunagite."
}