# app.golfthesky.course

> Published by [golfthesky.app](https://lexicon.garden/identity/did:plc:4ukvmcc7pscat4djemk4ckfl)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:4ukvmcc7pscat4djemk4ckfl/app.golfthesky.course)
- [Documentation](https://lexicon.garden/lexicon/did:plc:4ukvmcc7pscat4djemk4ckfl/app.golfthesky.course/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:4ukvmcc7pscat4djemk4ckfl/app.golfthesky.course/examples)

## Definitions

### `app.golfthesky.course`

**Type**: `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.

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `createdAt` | `string` (datetime) | Yes |  |
| `def` | `string` | Yes | 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. |
| `name` | `string` | Yes | What the designer called it. |
| `par` | `integer` | No |  |

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "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"
    }
  },
  "id": "app.golfthesky.course",
  "lexicon": 1
}
```
