com.gamethesky.make.game

gamethesky.com

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "chapter": {
      "properties": {
        "module": {
          "description": "The engine: house (a haunted floor, first person), tanks (a tank maze), vortex (a tube of lanes).",
          "knownValues": [
            "house",
            "tanks",
            "vortex"
          ],
          "maxLength": 32,
          "type": "string"
        },
        "preset": {
          "description": "The module's own level to start from: house hall, upstairs or basement; tanks m1 to m18; vortex w1 to w16.",
          "maxLength": 32,
          "type": "string"
        },
        "settings": {
          "description": "The module's knobs as an object of whole numbers by key (for example {\"lives\": 3, \"speed\": 120}). Each module declares its keys and ranges; readers clamp to them, and a missing key takes its default.",
          "type": "unknown"
        },
        "title": {
          "maxGraphemes": 40,
          "maxLength": 160,
          "type": "string"
        },
        "version": {
          "description": "The module's rules this chapter was built on. A reader that doesn't have that version refuses the game rather than playing it differently.",
          "minimum": 1,
          "type": "integer"
        }
      },
      "required": [
        "module",
        "version",
        "title",
        "preset",
        "settings"
      ],
      "type": "object"
    },
    "main": {
      "description": "A game somebody made in Make the Sky, published into their own repo: a title, a line about it, its look, and one to eight chapters, each one of Game the Sky's engines (a module) on one of its levels (a preset) with its knobs set. Play is decided by the chapters alone. A game is edited in place (the same record, a new version): its board belongs to its way of playing (the chapters' modules, versions, presets and settings), so renaming or restyling it keeps the board, and changing a chapter starts a fresh one. A run pins the version it was played on; a verifier replays it on the game as it stands and takes it only if it replays the same.",
      "key": "tid",
      "record": {
        "properties": {
          "cast": {
            "description": "The maker's own Foe Booth cast, included on purpose (off by default): each photo is a public blob in the maker's repo. Looks only: a verifier ignores it. Absent, players see their own cast or the engines' own monsters.",
            "items": {
              "ref": "#member",
              "type": "ref"
            },
            "maxLength": 7,
            "type": "array"
          },
          "chapters": {
            "description": "Played in order. Clearing one goes on to the next; losing one ends the run.",
            "items": {
              "ref": "#chapter",
              "type": "ref"
            },
            "maxLength": 8,
            "minLength": 1,
            "type": "array"
          },
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "description": {
            "maxGraphemes": 200,
            "maxLength": 800,
            "type": "string"
          },
          "theme": {
            "ref": "#theme",
            "type": "ref"
          },
          "title": {
            "maxGraphemes": 60,
            "maxLength": 240,
            "type": "string"
          }
        },
        "required": [
          "title",
          "theme",
          "chapters",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    },
    "member": {
      "description": "One of the cast: the part they play, the name they're billed under, and their photo.",
      "properties": {
        "image": {
          "accept": [
            "image/png",
            "image/jpeg"
          ],
          "description": "A cutout PNG for a body part, a 256×256 JPEG for a face. 192 KB at most.",
          "maxSize": 196608,
          "type": "blob"
        },
        "name": {
          "maxGraphemes": 40,
          "maxLength": 160,
          "type": "string"
        },
        "role": {
          "knownValues": [
            "ghoul",
            "hound",
            "thing",
            "scream",
            "victim",
            "portrait",
            "you"
          ],
          "type": "string"
        }
      },
      "required": [
        "role",
        "name",
        "image"
      ],
      "type": "object"
    },
    "theme": {
      "properties": {
        "mood": {
          "description": "How the chapters light their worlds.",
          "knownValues": [
            "bright",
            "dusk",
            "cold",
            "neon",
            "space",
            "horror",
            "retro"
          ],
          "type": "string"
        },
        "palette": {
          "description": "Five #rrggbb colors: the page, its panels, the accent, danger, and the words.",
          "items": {
            "maxLength": 7,
            "type": "string"
          },
          "maxLength": 5,
          "minLength": 5,
          "type": "array"
        },
        "pattern": {
          "knownValues": [
            "none",
            "grid",
            "stripes",
            "dots",
            "checks",
            "waves",
            "stars"
          ],
          "type": "string"
        },
        "preset": {
          "description": "The look it started from (haunted, neon, storybook, space, retro, frozen, sunset), or custom.",
          "maxLength": 20,
          "type": "string"
        },
        "type": {
          "description": "The typeface for titles.",
          "knownValues": [
            "anton",
            "creepster",
            "inter"
          ],
          "type": "string"
        }
      },
      "required": [
        "palette",
        "pattern",
        "mood",
        "type"
      ],
      "type": "object"
    }
  },
  "id": "com.gamethesky.make.game",
  "lexicon": 1
}

Validate Record

Validate a record against com.gamethesky.make.game

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:fpi7mvknwqh264gz6kug7pmk
CID
bafyreiatexdegvo44etqzv74bogf2wjmutrxmjkuzysl4zh4kp5q3zk7mu
Indexed At
2026-10-21 21:39 UTC
AT-URI
at://did:plc:fpi7mvknwqh264gz6kug7pmk/com.atproto.lexicon.schema/com.gamethesky.make.game

Version History (18 versions)

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • One play of a Make the Sky game, published by the player into their own repo. It stores every input rather than trusting a score: each chapter's engine is deterministic, so replaying its log on the same game reproduces …

  • lol.folk.game record

    A game, published by the developer that made it. One per repo: the record lives in the developer's own repository and is the canonical, self-asserted definition of the game. Player-side records reference it by AT-URI.

  • One night of Haunt the Sky, published by the player into their own repo. The record stores every input rather than trusting a score: the sim is deterministic, so replaying the log on the same seed reproduces the run exa…

Lexicon Garden

@