{
"id": "app.racethesky.course",
"defs": {
"main": {
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"name",
"def",
"createdAt"
],
"properties": {
"def": {
"type": "string",
"maxLength": 20000,
"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."
},
"kind": {
"type": "string",
"description": "Course family. A circuit is a closed lap; baja is a one-run side-scrolling dune course. Absent means circuit.",
"knownValues": [
"circuit",
"baja"
]
},
"laps": {
"type": "integer",
"maximum": 9,
"minimum": 1,
"description": "Laps a full run of this course takes. Mirrors the value inside def, surfaced here so an indexer needn't parse the geometry."
},
"name": {
"type": "string",
"maxLength": 64,
"description": "The designer's name for the course, as it appears in-game."
},
"night": {
"type": "boolean",
"description": "Whether the course races after dark. Mirrors the value inside def."
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Client-reported time the course was published."
}
}
},
"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."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}