app.racethesky.course

A racing course built in the Race the Sky editor, published by its designer into their own repo. The course belongs to whoever drew it: it outlives any gallery, contest, or leaderboard that happens to index it, and can be played from this record alone.

Repository @racethesky.app did:plc:37slmbx2v4gh6sa4ncfz7yid namespace authority
Details · record, key tid
Kindrecord
Record keytid
Authorityracethesky.app
Indexed
cid bafyreia4qtlijqp6zuaia4wn7beksssbgomtdvhkkyiy3xtjmz6o5nc5pe

Checks

Valid
  • unlimited-string defs.main.record.properties.kindNo maxLength, maxGraphemes or format limits this string.
JSONDownload
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "A racing course built in the Race the Sky editor, published by its designer into their own repo. The course belongs to whoever drew it: it outlives any gallery, contest, or leaderboard that happens to index it, and can be played from this record alone.",
      "key": "tid",
      "record": {
        "properties": {
          "createdAt": {
            "description": "Client-reported time the course was published.",
            "format": "datetime",
            "type": "string"
          },
          "def": {
            "description": "The course itself: a JSON-encoded CourseDef object holding the control-point geometry, wall width, satellite placement, boost strips, bridges and lap count. Carried as an encoded string rather than structured fields because the geometry is fractional and Lexicon has no float type — rounding it would silently alter how the course races. The format is documented at https://github.com/twilightscapes/racethesky/blob/main/docs/TECHNICAL.md and is the same object the game's editor exports and imports through the clipboard.",
            "maxLength": 20000,
            "type": "string"
          },
          "kind": {
            "description": "Course family. A circuit is a closed lap; baja is a one-run side-scrolling dune course. Absent means circuit.",
            "knownValues": [
              "circuit",
              "baja"
            ],
            "type": "string"
          },
          "laps": {
            "description": "Laps a full run of this course takes. Mirrors the value inside def, surfaced here so an indexer needn't parse the geometry.",
            "maximum": 9,
            "minimum": 1,
            "type": "integer"
          },
          "name": {
            "description": "The designer's name for the course, as it appears in-game.",
            "maxLength": 64,
            "type": "string"
          },
          "night": {
            "description": "Whether the course races after dark. Mirrors the value inside def.",
            "type": "boolean"
          }
        },
        "required": [
          "name",
          "def",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "app.racethesky.course",
  "lexicon": 1
}