app.racethesky.run

racethesky.app

Documentation

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.

main record

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.

Record Key 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: 0
createdAt 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 bytes
laps 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: 9
simVersion 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: 1
style string Optional

Opaque encoding of the player's ship livery, so a replayed ghost looks like the ship that set the time.

maxLength: 64 bytes
track 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: 0
trackId string Required

Permanent identity of the course raced. Append-only: ids are never reordered, renamed, or reused.

maxLength: 64 bytes
Known values: nebula-weave, solar-loop, quasar-gp, photon-oval, aurora-run, eclipse, baja
weather string Optional

Conditions the run was set under. Non-clear conditions change the physics and are ranked separately from clear times.

Known values: clear, rain, fog, night
View 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."
}

Lexicon Garden

@