app.golfthesky.course

golfthesky.app

Documentation

A hole built in the Golf the Sky designer, living in the repo of whoever built it. The geometry is a list of parts from the game's parts library (blocks, slopes, hills, free shapes, rings, ponds, greens — some of them moving) with a tee and a cup, carried as encoded JSON because the coordinates are fractional. Anyone can play it from a link; the record is where it lives.

main record

A hole built in the Golf the Sky designer, living in the repo of whoever built it. The geometry is a list of parts from the game's parts library (blocks, slopes, hills, free shapes, rings, ponds, greens — some of them moving) with a tee and a cup, carried as encoded JSON because the coordinates are fractional. Anyone can play it from a link; the record is where it lives.

Record Key tid Timestamp-based ID

Properties

createdAt string datetime Required

An RFC 3339 formatted timestamp.

def string Required

The level as JSON: { id, name, par, tee: [x, y], cup: [x, y], parts: [{ t, x, y, w, h, k?, f?, pts?, g?, n?, th?, m? }], frame?: { x0, x1, top } }. t is block | slope | hill | poly | ring | pond | green; x, y the bottom-left on a quarter-unit grid; w, h the size; k a surface (fairway | green | sand | ice | sticky); f = 1 flips a slope; pts is a poly's outline relative to x, y as a flat list; g, n, th a ring's gap in degrees, gap count and band thickness; m is motion: { t: spin, v (rpm), ph?, px?, py? } | { t: slide, dx, dy, s (seconds), ph? } | { t: belt, v (units/s) }; frame places the walls and ceiling by hand.

maxLength: 20000 bytes
name string Required

What the designer called it.

maxLength: 40 bytes
par integer Optional

No description available.

minimum: 1maximum: 9
View raw schema
{
  "description": "A hole built in the Golf the Sky designer, living in the repo of whoever built it. The geometry is a list of parts from the game's parts library (blocks, slopes, hills, free shapes, rings, ponds, greens — some of them moving) with a tee and a cup, carried as encoded JSON because the coordinates are fractional. Anyone can play it from a link; the record is where it lives.",
  "key": "tid",
  "record": {
    "properties": {
      "createdAt": {
        "format": "datetime",
        "type": "string"
      },
      "def": {
        "description": "The level as JSON: { id, name, par, tee: [x, y], cup: [x, y], parts: [{ t, x, y, w, h, k?, f?, pts?, g?, n?, th?, m? }], frame?: { x0, x1, top } }. t is block | slope | hill | poly | ring | pond | green; x, y the bottom-left on a quarter-unit grid; w, h the size; k a surface (fairway | green | sand | ice | sticky); f = 1 flips a slope; pts is a poly's outline relative to x, y as a flat list; g, n, th a ring's gap in degrees, gap count and band thickness; m is motion: { t: spin, v (rpm), ph?, px?, py? } | { t: slide, dx, dy, s (seconds), ph? } | { t: belt, v (units/s) }; frame places the walls and ceiling by hand.",
        "maxLength": 20000,
        "type": "string"
      },
      "name": {
        "description": "What the designer called it.",
        "maxLength": 40,
        "type": "string"
      },
      "par": {
        "maximum": 9,
        "minimum": 1,
        "type": "integer"
      }
    },
    "required": [
      "name",
      "def",
      "createdAt"
    ],
    "type": "object"
  },
  "type": "record"
}

Lexicon Garden

@