A single Race the Sky time-trial run, published by the player into their own repo. The record stores the raw input log rather than a result: the game's physics are deterministic, so re-simulating the log reproduces the run exactly. Owning the record is the identity proof, and replaying it is the time proof — the claimed time in this record is advisory and is never trusted by a leaderboard.
tid
Timestamp-based ID
Properties
bestMs
integer
Optional
The client's own best-lap figure in milliseconds, for display before a run is verified. Advisory only — the authoritative time is whatever replaying `events` produces.
minimum: 0createdAt
string
datetime
Required
Client-reported time the run was set.
events
string
Required
The whole run, as the only input the game takes: when the tether was held. Comma-separated `<delta><d|u>` pairs, where delta is ticks since the previous event at a fixed 120 Hz step, `d` is press and `u` is release. Example: `43d,17u,29d`.
maxLength: 20000 byteslaps
integer
Optional
Laps the session ran. Session length is a player preference, not a fairness variable — circuits rank best single lap — but the replay must run the same number of laps to reproduce it.
minimum: 1maximum: 9simVersion
integer
Required
Which physics produced this log. A verifier must replay under the matching version or refuse the run — replaying under different physics yields a plausible wrong time rather than an error.
minimum: 1style
string
Optional
Opaque encoding of the player's ship livery, so a replayed ghost looks like the ship that set the time.
maxLength: 64 bytestrack
integer
Optional
DEPRECATED. The course's index in the client's built-in roster, which is a display-order detail and may change. Present only so a client and server deployed minutes apart still agree. Readers must prefer trackId and ignore this whenever trackId is present.
minimum: 0trackId
string
Required
Permanent identity of the course raced. Append-only: ids are never reordered, renamed, or reused.
maxLength: 64 bytesnebula-weave, solar-loop, quasar-gp, photon-oval, aurora-run, eclipse, bajaweather
string
Optional
Conditions the run was set under. Non-clear conditions change the physics and are ranked separately from clear times.
clear, rain, fog, nightView raw schema
{
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"trackId",
"simVersion",
"events",
"createdAt"
],
"properties": {
"laps": {
"type": "integer",
"maximum": 9,
"minimum": 1,
"description": "Laps the session ran. Session length is a player preference, not a fairness variable — circuits rank best single lap — but the replay must run the same number of laps to reproduce it."
},
"style": {
"type": "string",
"maxLength": 64,
"description": "Opaque encoding of the player's ship livery, so a replayed ghost looks like the ship that set the time."
},
"track": {
"type": "integer",
"minimum": 0,
"description": "DEPRECATED. The course's index in the client's built-in roster, which is a display-order detail and may change. Present only so a client and server deployed minutes apart still agree. Readers must prefer trackId and ignore this whenever trackId is present."
},
"bestMs": {
"type": "integer",
"minimum": 0,
"description": "The client's own best-lap figure in milliseconds, for display before a run is verified. Advisory only — the authoritative time is whatever replaying `events` produces."
},
"events": {
"type": "string",
"maxLength": 20000,
"description": "The whole run, as the only input the game takes: when the tether was held. Comma-separated `<delta><d|u>` pairs, where delta is ticks since the previous event at a fixed 120 Hz step, `d` is press and `u` is release. Example: `43d,17u,29d`."
},
"trackId": {
"type": "string",
"maxLength": 64,
"description": "Permanent identity of the course raced. Append-only: ids are never reordered, renamed, or reused.",
"knownValues": [
"nebula-weave",
"solar-loop",
"quasar-gp",
"photon-oval",
"aurora-run",
"eclipse",
"baja"
]
},
"weather": {
"type": "string",
"description": "Conditions the run was set under. Non-clear conditions change the physics and are ranked separately from clear times.",
"knownValues": [
"clear",
"rain",
"fog",
"night"
]
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Client-reported time the run was set."
},
"simVersion": {
"type": "integer",
"minimum": 1,
"description": "Which physics produced this log. A verifier must replay under the matching version or refuse the run — replaying under different physics yields a plausible wrong time rather than an error."
}
}
},
"description": "A single Race the Sky time-trial run, published by the player into their own repo. The record stores the raw input log rather than a result: the game's physics are deterministic, so re-simulating the log reproduces the run exactly. Owning the record is the identity proof, and replaying it is the time proof — the claimed time in this record is advisory and is never trusted by a leaderboard."
}