{
  "contract": "aesthetary.record/1.0",
  "record_spec": "1.1.0",
  "semantics": {
    "vocabulary": "aesthetary.public-evidence/1.0",
    "definitions": "vocabulary.json"
  },
  "slug": "arcade",
  "name": "Arcade",
  "identity": {
    "definition": {
      "state": "resolved",
      "text": "Arcade, as scoped here, is the on-screen graphics of raster-display coin-operated video games of the 1970s and 1980s: hardware sprites composited over a background as each scan line is prepared, a small hardware palette (Pac-Man's 32-entry PROM is the documented case), a high score on screen, and multiple lives from Space Invaders on. Vector and laserdisc games and cabinet art fall outside it; treating the raster strand as one visual language, and whole-number scaling, are Aesthetary's reading."
    },
    "scope": {
      "state": "resolved",
      "text": "The visual register of raster-screen coin-op arcade games of the late 1970s and 1980s: sprites, small indexed palettes, low-resolution rasters, on-screen score furniture. Vector, laserdisc and cabinet art excluded; whole-number scaling is ours.",
      "ruling": "D0-1"
    },
    "aliases": [
      "pixel art",
      "8-bit",
      "16-bit",
      "retro game"
    ],
    "layer_verdict": {
      "state": "ruled",
      "value": "umbrella_or_family",
      "ruling": "D0-1"
    }
  },
  "native_medium": {
    "state": "resolved",
    "value": [
      "screen"
    ],
    "evidence": {
      "quote": "cabinet",
      "field": "register_context[kind=medium]"
    },
    "ruling": "AM2-2 (2026-09-27)"
  },
  "research": {
    "line": "partly_sourced",
    "text": "Partly sourced",
    "sentence": "16 sources attached."
  },
  "areas": [
    {
      "area": "layout",
      "state": "resolved",
      "canon": "specified",
      "importance": "unknown",
      "posture_basis": "synthesis",
      "label": {
        "text": "Specified"
      }
    },
    {
      "area": "typography",
      "state": "resolved",
      "canon": "specified",
      "importance": "unknown",
      "posture_basis": "synthesis",
      "label": {
        "text": "Specified"
      }
    },
    {
      "area": "color",
      "state": "resolved",
      "canon": "specified",
      "importance": "unknown",
      "posture_basis": "synthesis",
      "label": {
        "text": "Specified"
      }
    },
    {
      "area": "imagery",
      "state": "resolved",
      "canon": "specified",
      "importance": "unknown",
      "posture_basis": "synthesis",
      "label": {
        "text": "Specified"
      }
    },
    {
      "area": "surface",
      "state": "resolved",
      "canon": "specified",
      "importance": "unknown",
      "posture_basis": null,
      "label": {
        "text": "Specified"
      }
    },
    {
      "area": "interface",
      "state": "resolved",
      "canon": "specified",
      "importance": "unknown",
      "posture_basis": null,
      "label": {
        "text": "Specified"
      }
    },
    {
      "area": "motion",
      "state": "resolved",
      "canon": "specified",
      "importance": "unknown",
      "posture_basis": "synthesis",
      "label": {
        "text": "Specified"
      }
    },
    {
      "area": "motif",
      "state": "owed",
      "owed": "research",
      "why": "No source has been examined for this yet."
    },
    {
      "area": "technique",
      "state": "resolved",
      "canon": "specified",
      "importance": "unknown",
      "posture_basis": null,
      "label": {
        "text": "Specified"
      }
    },
    {
      "area": "form",
      "state": "resolved",
      "canon": "not_applicable",
      "importance": "unknown",
      "posture_basis": null,
      "label": {
        "text": "Does not apply"
      }
    },
    {
      "area": "hierarchy",
      "state": "resolved",
      "canon": "specified",
      "importance": "unknown",
      "posture_basis": "synthesis",
      "label": {
        "text": "Specified"
      }
    },
    {
      "area": "density",
      "state": "resolved",
      "canon": "specified",
      "importance": "unknown",
      "posture_basis": "synthesis",
      "label": {
        "text": "Specified"
      }
    }
  ],
  "claims": [
    {
      "id": "layout-3",
      "text": "Composition: fixed low-res raster; furniture pinned to edges.",
      "role": "rule",
      "area": "layout",
      "basis": "documentary",
      "support": {
        "state": "observed_instances",
        "for": [
          "4CRSXMCVSFC9PKHABKB5CTVZ4X",
          "6MD6XEPQH7Q0P9VD37ZJZ9RQWX",
          "5N48VGFKE56EXMXEEKBD9EMN8M",
          "3WYRH1PQ95AAY5097ARDXM1YGW"
        ],
        "against": [
          "mass-01:arcade:WP_VECTORMON"
        ],
        "contested": true
      },
      "label": {
        "kind": "seen",
        "mark": "disputed",
        "text": "Seen in the work · disputed"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "typography-4",
      "text": "Typography: token rule category B, bitmap.",
      "role": "rule",
      "area": "typography",
      "basis": "inherited",
      "support": {
        "state": "inherited",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "catalogue",
        "text": "From our catalogue entry"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "hierarchy-13",
      "text": "Rank by saturation and movement, not scale. The brightest moving thing is the subject; static furniture sits at the edges regardless of importance. Unusual and useful — it inverts the normal web assumption that the largest element leads.",
      "role": "rule",
      "area": "hierarchy",
      "basis": "synthesis",
      "support": {
        "state": "none",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "reading",
        "text": "Our reading"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "color-5",
      "text": "Colour: small indexed palette on black.",
      "role": "rule",
      "area": "color",
      "basis": "documentary",
      "support": {
        "state": "observed_instances",
        "for": [
          "4CRSXMCVSFC9PKHABKB5CTVZ4X",
          "6MD6XEPQH7Q0P9VD37ZJZ9RQWX",
          "5N48VGFKE56EXMXEEKBD9EMN8M",
          "3WYRH1PQ95AAY5097ARDXM1YGW"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "seen",
        "text": "Seen in the work"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "density-6",
      "text": "CURATORIAL from intent: busy, with the centre kept clear for the subject and the perimeter carrying state.",
      "role": "rule",
      "area": "density",
      "basis": "synthesis",
      "support": {
        "state": "none",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "reading",
        "text": "Our reading"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "imagery-7",
      "text": "Imagery: sprite illustration.",
      "role": "rule",
      "area": "imagery",
      "basis": "inherited",
      "support": {
        "state": "observed_instances",
        "for": [
          "4CRSXMCVSFC9PKHABKB5CTVZ4X",
          "6MD6XEPQH7Q0P9VD37ZJZ9RQWX",
          "5N48VGFKE56EXMXEEKBD9EMN8M",
          "3WYRH1PQ95AAY5097ARDXM1YGW"
        ],
        "against": [
          "mass-01:arcade:WP_VECTORMON"
        ],
        "contested": true
      },
      "label": {
        "kind": "catalogue",
        "mark": "disputed",
        "text": "From our catalogue entry · disputed"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "surface-8",
      "text": "Form / motif / surface / technique: visible, hard-edged raster pixels; scanline.",
      "role": "rule",
      "area": null,
      "basis": "documentary",
      "support": {
        "state": "observed_instances",
        "for": [
          "4CRSXMCVSFC9PKHABKB5CTVZ4X",
          "6MD6XEPQH7Q0P9VD37ZJZ9RQWX"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "seen",
        "text": "Seen in the work"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "motion-14",
      "text": "The native behaviours are the attract loop (the page demonstrating itself to an absent visitor), state-change flashes, and integer step movement. Nothing eases. Nothing has sub-pixel motion. A CSS ease-in-out would break the register more visibly than a wrong colour.",
      "role": "rule",
      "area": "motion",
      "basis": "synthesis",
      "support": {
        "state": "none",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "reading",
        "text": "Our reading"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "intent",
      "text": "The screen has to sell the machine across a noisy room and then teach a stranger to play in the seconds before they walk away. Everything is legible at distance, in motion, and under competition from the cabinet next to it.",
      "role": "argument",
      "area": null,
      "basis": "synthesis",
      "support": {
        "state": "none",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "reading",
        "text": "Our reading"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "gestalt",
      "text": "Sprite illustration on a low-resolution raster, drawn as hard-edged pixels, in a small saturated palette against black, with the cabinet's own furniture kept on screen — score, high score, lives, credits, and an attract loop that plays to nobody. The diagnostic condition is the coin-op furniture: the screen is always either demonstrating or scoring, never idle. Teletext shares the low resolution but is a broadcast page on a fixed character grid with no sprites and no state. Terminal shares the dark ground but answers a prompt rather than advertising itself.",
      "role": "diagnostic",
      "area": null,
      "basis": "synthesis",
      "support": {
        "state": "observed_instances",
        "for": [
          "4CRSXMCVSFC9PKHABKB5CTVZ4X",
          "37SMKKG87NEHN49PKEK0H0JW53",
          "6MD6XEPQH7Q0P9VD37ZJZ9RQWX"
        ],
        "against": [
          "mass-01:arcade:WP_VECTORMON"
        ],
        "contested": true
      },
      "label": {
        "kind": "reading",
        "mark": "disputed",
        "text": "Our reading · disputed"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "failure-1",
      "text": "No anti-aliasing, no fractional scaling, no easing curves, no gradients, no low-contrast states, no empty screen without an attract behaviour.",
      "role": "negative",
      "area": null,
      "basis": "synthesis",
      "support": {
        "state": "none",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "reading",
        "text": "Our reading"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "failure-2",
      "text": "Against Teletext: sprites and state versus a fixed character grid. Against Web 1.0: both are low-fidelity and nostalgic, but this is a closed machine with a score, not a document with links. Anti-signature: remove the furniture and it becomes generic pixel art. Put it on a character grid and it becomes Teletext. Add a prompt and it becomes Terminal.",
      "role": "negative",
      "area": null,
      "basis": "synthesis",
      "support": {
        "state": "none",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "reading",
        "text": "Our reading"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "failure-3",
      "text": "Not open when reproducing on a modern screen: fractional pixel scaling.",
      "role": "negative",
      "area": null,
      "basis": "synthesis",
      "support": {
        "state": "none",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "reading",
        "text": "Our reading"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "failure-4",
      "text": "Not open: removing the furniture..",
      "role": "negative",
      "area": null,
      "basis": "synthesis",
      "support": {
        "state": "none",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "reading",
        "text": "Our reading"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "intent-negation",
      "text": "Refuses subtlety, low contrast, resting states, and any screen that does not either advertise or instruct.",
      "role": "argument",
      "area": null,
      "basis": "synthesis",
      "support": {
        "state": "none",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "reading",
        "text": "Our reading"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "intent-cost",
      "text": "Costs accepted: Restraint; Tonal range; Anything resembling calm",
      "role": "argument",
      "area": null,
      "basis": "synthesis",
      "support": {
        "state": "none",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "reading",
        "text": "Our reading"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "intent-audience",
      "text": "Audience: A passer-by who has not paid yet and will decide in four seconds.",
      "role": "argument",
      "area": null,
      "basis": "synthesis",
      "support": {
        "state": "none",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "reading",
        "text": "Our reading"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "gestalt-boundary",
      "text": "Against Teletext: sprites and state versus a fixed character grid. Against Web 1.0: both are low-fidelity and nostalgic, but this is a closed machine with a score, not a document with links. Anti-signature: remove the furniture and it becomes generic pixel art. Put it on a character grid and it becomes Teletext. Add a prompt and it becomes Terminal.",
      "role": "boundary",
      "area": null,
      "basis": "synthesis",
      "support": {
        "state": "none",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "reading",
        "text": "Our reading"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "v1-era",
      "text": "Era: 1980s, 1990s",
      "role": "context",
      "area": null,
      "basis": "inherited",
      "support": {
        "state": "inherited",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "catalogue",
        "text": "From our catalogue entry"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "v1-mood",
      "text": "Mood: playful, nostalgic",
      "role": "context",
      "area": null,
      "basis": "inherited",
      "support": {
        "state": "inherited",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "catalogue",
        "text": "From our catalogue entry"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "v1-cross-library",
      "text": "Cross-library: Typography: bitmap · Imagery: sprite illustration",
      "role": "context",
      "area": null,
      "basis": "inherited",
      "support": {
        "state": "inherited",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "catalogue",
        "text": "From our catalogue entry"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "typography-block",
      "text": "Typography: bitmap; class bitmap",
      "role": "rule",
      "area": "typography",
      "basis": "inherited",
      "support": {
        "state": "inherited",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "catalogue",
        "text": "From our catalogue entry"
      },
      "derives_from": [],
      "ruling": "D0-3 C2 typo"
    },
    {
      "id": "surface-8.surface",
      "text": "Surface: scanline",
      "role": "rule",
      "area": "surface",
      "basis": "documentary",
      "support": {
        "state": "none",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "none",
        "text": "No source attached"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "declared-freedom",
      "text": "Declared freedom: scan-line.",
      "role": "context",
      "area": null,
      "basis": "synthesis",
      "support": {
        "state": "none",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "reading",
        "text": "Our reading"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "gestalt.interface",
      "text": "the cabinet's own furniture kept on screen — score, high score, lives, credits",
      "role": "diagnostic",
      "area": "interface",
      "basis": "synthesis",
      "support": {
        "state": "observed_instances",
        "for": [
          "4CRSXMCVSFC9PKHABKB5CTVZ4X",
          "37SMKKG87NEHN49PKEK0H0JW53",
          "6MD6XEPQH7Q0P9VD37ZJZ9RQWX"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "reading",
        "text": "Our reading"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "kcc:interface-1",
      "text": "A high score is displayed at the top of the screen; after Space Invaders (1978) it became a standard element of arcade games.",
      "role": "rule",
      "area": "interface",
      "basis": "documentary",
      "support": {
        "state": "cited",
        "for": [
          "kcc-arcade-S1",
          "kcc-arcade-S2"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "attached",
        "text": "Documented · Source attached"
      },
      "scope": {
        "practice": "from 1978"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "kcc:interface-2",
      "text": "Multiple lives are part of the game state, first in Space Invaders.",
      "role": "context",
      "area": "interface",
      "basis": "documentary",
      "support": {
        "state": "cited",
        "for": [
          "kcc-arcade-S2"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "attached",
        "text": "Documented · Source attached"
      },
      "scope": {
        "practice": "The sources establish lives as a feature; they do not say where lives are drawn on screen."
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "kcc:interface-3",
      "text": "When nobody is playing, the machine runs an attract mode: a demonstration of the game.",
      "role": "rule",
      "area": "interface",
      "basis": "documentary",
      "support": {
        "state": "cited",
        "for": [
          "kcc-arcade-S15"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "attached",
        "text": "Documented · Source attached"
      },
      "scope": {
        "practice": "encyclopedia glossary only; secondary support"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "kcc:technique-1",
      "text": "Arcade boards such as Galaxian's used hardware sprites: fixed-size objects composited over a background by hardware as each scan line is prepared, without a full-screen frame buffer.",
      "role": "rule",
      "area": "technique",
      "basis": "documentary",
      "support": {
        "state": "cited",
        "for": [
          "kcc-arcade-S9",
          "kcc-arcade-S5"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "attached",
        "text": "Documented · Source attached"
      },
      "scope": {
        "practice": "Galaxian-derived hardware (1979 to 1982) documented in detail; the general statement is encyclopedic"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "kcc:technique-2",
      "text": "Pac-Man's colour comes from a small palette fixed in hardware: a 32x8 palette PROM and a 256x4 colour lookup table PROM.",
      "role": "rule",
      "area": "technique",
      "basis": "documentary",
      "support": {
        "state": "cited",
        "for": [
          "kcc-arcade-S4"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "attached",
        "text": "Documented · Source attached"
      },
      "scope": {
        "practice": "Pac-Man hardware; per-board values differ"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "kcc:technique-3",
      "text": "Practitioner testimony reported by Wikipedia says the use of pixels was then not an aesthetic choice, as it is now; low colour count is a common trait of pixel art.",
      "role": "context",
      "area": "technique",
      "basis": "documentary",
      "support": {
        "state": "cited",
        "for": [
          "kcc-arcade-S10"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "attached",
        "text": "Documented · Source attached"
      },
      "scope": {
        "practice": "practitioner testimony reported by an encyclopedia (Lucasfilm Games, 1987)"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "kcc:form-1",
      "text": "The screen image is two-dimensional: a raster subdivided into scan lines, with sprites as two-dimensional bitmaps.",
      "role": "context",
      "area": "form",
      "basis": "documentary",
      "support": {
        "state": "cited",
        "for": [
          "kcc-arcade-S14",
          "kcc-arcade-S9"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "attached",
        "text": "Documented · Source attached"
      },
      "scope": {
        "practice": "within the approved screen scope"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "kcc:definition",
      "text": "Arcade, as scoped here, is the on-screen graphics of raster-display coin-operated video games of the 1970s and 1980s: hardware sprites composited over a background as each scan line is prepared, a small hardware palette (Pac-Man's 32-entry PROM is the documented case), a high score on screen, and multiple lives from Space Invaders on. Vector and laserdisc games and cabinet art fall outside it; treating the raster strand as one visual language, and whole-number scaling, are Aesthetary's reading.",
      "role": "definition",
      "area": null,
      "basis": "documentary",
      "support": {
        "state": "cited",
        "for": [
          "kcc-arcade-S9",
          "kcc-arcade-S14",
          "kcc-arcade-S4",
          "kcc-arcade-S1",
          "kcc-arcade-S2",
          "kcc-arcade-S11",
          "kcc-arcade-S12",
          "kcc-arcade-S13"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "attached",
        "text": "Documented · Source attached"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "kcc:revision-ac-r1",
      "text": "In the historical subject the cabinet carries its own graphics (a title marquee above the monitor, a bezel that may carry instructions or artwork, sides usually decorated with stickers or paint). The approved scope excludes cabinet art, so for this Aesthetic this is context and not a rule.",
      "role": "context",
      "area": null,
      "basis": "documentary",
      "support": {
        "state": "cited",
        "for": [
          "kcc-arcade-S13"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "attached",
        "text": "Documented · Source attached"
      },
      "derives_from": [],
      "ruling": null
    }
  ],
  "web_translations": [
    {
      "id": "transfer-1",
      "text": "Our implementation guidance, not a property of the period: scale raster artwork by whole numbers so every pixel stays square and hard-edged; fractional scaling softens the edge.",
      "target": null,
      "area": null,
      "label": {
        "kind": "translation",
        "text": "Web translation"
      },
      "derives_from": [
        "surface-8"
      ]
    }
  ],
  "standard_practice": [],
  "sources": [
    {
      "id": "4CRSXMCVSFC9PKHABKB5CTVZ4X",
      "kind": "source",
      "title": "MAME Pac-Man driver: pacman.cpp, pacman_v.cpp",
      "url": "https://github.com/mamedev/mame/blob/master/src/mame/pacman/pacman_v.cpp",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "6MD6XEPQH7Q0P9VD37ZJZ9RQWX",
      "kind": "work",
      "title": "Pac-Man (Puck Man)",
      "url": "https://github.com/mamedev/mame/blob/master/src/mame/pacman/pacman.cpp",
      "status": "verified",
      "retrieval": "unknown"
    },
    {
      "id": "5N48VGFKE56EXMXEEKBD9EMN8M",
      "kind": "source",
      "title": "MAME Galaxian driver: galaxian.cpp, galaxian.h",
      "url": "https://github.com/mamedev/mame/blob/master/src/mame/galaxian/galaxian.cpp",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "3WYRH1PQ95AAY5097ARDXM1YGW",
      "kind": "work",
      "title": "Galaxian",
      "url": "https://github.com/mamedev/mame/blob/master/src/mame/galaxian/galaxian.cpp",
      "status": "verified",
      "retrieval": "unknown"
    },
    {
      "id": "37SMKKG87NEHN49PKEK0H0JW53",
      "kind": "source",
      "title": "Superauthenticity: Arcade game aspect ratios (8 Mar 2026)",
      "url": "https://datadrivengamer.blogspot.com/2026/03/superauthenticity-arcade-game-aspect.html",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "mass-01:arcade:WP_VECTORMON",
      "kind": "source",
      "title": "Vector monitor",
      "url": "https://en.wikipedia.org/wiki/Vector_monitor",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "kcc-arcade-S1",
      "kind": "source",
      "title": "Space Invaders",
      "url": "https://www.museumofplay.org/games/space-invaders/",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "kcc-arcade-S10",
      "kind": "source",
      "title": "Pixel art",
      "url": "https://en.wikipedia.org/wiki/Pixel_art",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "kcc-arcade-S11",
      "kind": "source",
      "title": "Vector monitor",
      "url": "https://en.wikipedia.org/wiki/Vector_monitor",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "kcc-arcade-S12",
      "kind": "source",
      "title": "Laserdisc video game",
      "url": "https://en.wikipedia.org/wiki/Laserdisc_video_game",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "kcc-arcade-S13",
      "kind": "source",
      "title": "Arcade cabinet",
      "url": "https://en.wikipedia.org/wiki/Arcade_cabinet",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "kcc-arcade-S14",
      "kind": "source",
      "title": "Raster scan",
      "url": "https://en.wikipedia.org/wiki/Raster_scan",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "kcc-arcade-S15",
      "kind": "source",
      "title": "Glossary of video game terms (Attract mode)",
      "url": "https://en.wikipedia.org/wiki/Glossary_of_video_game_terms",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "kcc-arcade-S2",
      "kind": "source",
      "title": "Platform X: Space Invaders",
      "url": "https://thenvm.org/exhibitions/space-invaders/",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "kcc-arcade-S4",
      "kind": "source",
      "title": "MAME Pac-Man video driver: pacman_v.cpp",
      "url": "https://github.com/mamedev/mame/blob/master/src/mame/pacman/pacman_v.cpp",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "kcc-arcade-S5",
      "kind": "source",
      "title": "MAME Galaxian-derived video hardware: galaxian_v.cpp",
      "url": "https://github.com/mamedev/mame/blob/master/src/mame/galaxian/galaxian_v.cpp",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "kcc-arcade-S9",
      "kind": "source",
      "title": "Sprite (computer graphics)",
      "url": "https://en.wikipedia.org/wiki/Sprite_(computer_graphics)",
      "status": "verified",
      "retrieval": "retrieved"
    }
  ],
  "relations": [
    {
      "slug": "web-1-0",
      "kind": "confused_with",
      "status": "proposed"
    },
    {
      "slug": "teletext",
      "kind": "confused_with",
      "status": "proposed"
    },
    {
      "slug": "manga",
      "kind": "confused_with",
      "status": "proposed"
    }
  ],
  "open": [
    {
      "kind": "open_question",
      "question": "[form_module] A1: this language is native to substrate \"built_space\". Author a form module (substrate + transfer_note), or set depth_policy influence_only."
    },
    {
      "kind": "missing_research",
      "question": "Motif"
    },
    {
      "kind": "missing_research",
      "question": "Are score, lives and credits pinned to the screen edges as a rule?"
    }
  ],
  "aesthetary_build": {
    "note": "Values Aesthetary built with. Not claims about the Aesthetic.",
    "measured": {
      "note": "Read from the page's own stylesheet at build time. Values Aesthetary built with, not claims about the Aesthetic.",
      "slug": "arcade",
      "stylesheet": "arcade.css",
      "bytes": 15324,
      "colours": [
        "#060608",
        "#29D9D9",
        "#E24AC4",
        "#F2D22E",
        "#E23D28",
        "#35D948",
        "#EDEDF2",
        "#101018",
        "#8A8A9C",
        "#2A2A36",
        "#1B0F2E",
        "#1C1C28",
        "#3A3A4A",
        "#C6C6D4",
        "#1A1A26"
      ],
      "radii": [],
      "fontSizes": [
        "12px",
        "13px",
        "14px",
        "15px"
      ],
      "faces": [
        "PressStart2PX",
        "SpaceMonoX"
      ],
      "tokens": [
        {
          "name": "--ar-bk",
          "value": "#060608"
        },
        {
          "name": "--ar-cy",
          "value": "#29D9D9"
        },
        {
          "name": "--ar-mg",
          "value": "#E24AC4"
        },
        {
          "name": "--ar-yl",
          "value": "#F2D22E"
        },
        {
          "name": "--ar-rd",
          "value": "#E23D28"
        },
        {
          "name": "--ar-gn",
          "value": "#35D948"
        },
        {
          "name": "--ar-wh",
          "value": "#EDEDF2"
        },
        {
          "name": "--ar-nv",
          "value": "#101018"
        },
        {
          "name": "--ar-dim",
          "value": "#8a8a9c"
        },
        {
          "name": "--ar-rule",
          "value": "#2a2a36"
        },
        {
          "name": "--ar-mono",
          "value": "\"SpaceMonoX\", \"Space Mono\", ui-monospace, Menlo, monospace"
        },
        {
          "name": "--ar-pix",
          "value": "\"PressStart2PX\", \"Press Start 2P\", monospace"
        }
      ],
      "animates": true,
      "absent": [
        "no rounded corner anywhere"
      ]
    },
    "design_grammar": {
      "note": "Aesthetary's translation of this record into web primitives. Every value carries a basis: \"record\" is a rule the record holds (cites names it), \"translation\" is our choice derived from the cited rules (because says how), \"not_recorded\" means the record is silent (guidance says what to do). A \"record\" value restates a claim the record holds; its standing is that claim's own kind in the record (a requirement, period practice, modern practice, or our interpretation), which the cited rule states. \"record\" does not by itself make a value a property of the language.",
      "slug": "arcade",
      "version": "2026-09-29",
      "summary": "A starting grammar for a website in Arcade: a closed machine on a black raster, a small palette with no tints, bitmap type, the high score at the top and state at the edges, and a page that demonstrates itself when nobody is using it.",
      "color": {
        "roles": [
          {
            "role": "black",
            "value": "#060608",
            "use": "The ground.",
            "basis": "record",
            "cites": [
              "token_rule:color-5"
            ]
          },
          {
            "role": "white",
            "value": "#EDEDF2",
            "contrast": "17.3:1",
            "use": "Running text.",
            "basis": "translation",
            "cites": [
              "token_rule:color-5"
            ]
          },
          {
            "role": "yellow",
            "value": "#F2D22E",
            "contrast": "13.5:1",
            "use": "Titles, the high score, start buttons.",
            "basis": "translation",
            "cites": [
              "token_rule:color-5"
            ]
          },
          {
            "role": "cyan",
            "value": "#29D9D9",
            "contrast": "11.6:1",
            "use": "Borders, links, labels.",
            "basis": "translation",
            "cites": [
              "token_rule:color-5"
            ]
          },
          {
            "role": "magenta",
            "value": "#E24AC4",
            "contrast": "5.8:1",
            "use": "Rings and markers.",
            "basis": "translation",
            "cites": [
              "token_rule:color-5"
            ]
          },
          {
            "role": "red",
            "value": "#E23D28",
            "contrast": "4.8:1",
            "use": "1UP, errors, the button block.",
            "basis": "translation",
            "cites": [
              "token_rule:color-5"
            ]
          },
          {
            "role": "green",
            "value": "#35D948",
            "contrast": "10.8:1",
            "use": "Diagnostic panels and lit meters.",
            "basis": "translation",
            "cites": [
              "token_rule:color-5"
            ]
          }
        ],
        "alternates": [],
        "rules": [
          {
            "rule": "Work in a small indexed palette on black.",
            "basis": "record",
            "cites": [
              "token_rule:color-5"
            ]
          },
          {
            "rule": "Treat the palette as fixed, as hardware fixed it: Pac-Man's colour came from a 32-entry palette PROM.",
            "basis": "record",
            "cites": [
              "claim:kcc:technique-2"
            ]
          },
          {
            "rule": "No gradients and no low-contrast states.",
            "basis": "record",
            "cites": [
              "claim:failure-1"
            ]
          },
          {
            "rule": "The sources give no palette values.",
            "basis": "not_recorded",
            "cites": [
              "claim:kcc:technique-2"
            ],
            "guidance": "Per-board values differ. The seven here are the room's; keep any set small and flat.",
            "silence": "source"
          }
        ]
      },
      "typography": {
        "family": {
          "stack": "\"PressStart2PX\", \"Press Start 2P\", monospace",
          "class": "a bitmap face for display, with Space Mono for anything read at length"
        },
        "roles": [
          {
            "role": "title",
            "size": "clamp(2.5rem, 10vw, 7.5rem)",
            "weight": 400,
            "lineHeight": "1.2",
            "case": "uppercase",
            "tracking": "0.02em",
            "measure": null,
            "use": "The name on the attract screen."
          },
          {
            "role": "hud",
            "size": "0.875rem",
            "weight": 400,
            "lineHeight": "1.5",
            "case": "uppercase",
            "tracking": "0",
            "measure": null,
            "use": "1UP, HI and the other counters."
          },
          {
            "role": "text",
            "size": "1.0625rem",
            "weight": 400,
            "lineHeight": "1.65",
            "case": null,
            "tracking": null,
            "measure": "64ch",
            "use": "Running text, in Space Mono."
          }
        ],
        "tokens": {
          "font-text": "\"SpaceMonoX\", \"Space Mono\", ui-monospace, monospace"
        },
        "rules": [
          {
            "rule": "Set display type as a bitmap face.",
            "basis": "record",
            "cites": [
              "token_rule:typography-4"
            ]
          },
          {
            "rule": "Use Press Start 2P for display and counters, at 12px and up; read at length in Space Mono.",
            "basis": "translation",
            "cites": [
              "token_rule:typography-4",
              "claim:intent"
            ],
            "because": "A bitmap face is built for a few words at a distance, not paragraphs."
          },
          {
            "rule": "The sources name no period font.",
            "basis": "not_recorded",
            "cites": [],
            "guidance": "Games drew their own characters per board; do not present one bitmap face as the arcade font.",
            "silence": "source"
          }
        ]
      },
      "gridLayout": {
        "summary": "A fixed low-resolution screen: furniture pinned to the edges, the centre kept clear for the subject. Everything sits on an 8px step.",
        "module": "8px",
        "tokens": {
          "step": "8px",
          "edge": "furniture pinned top and sides"
        },
        "rules": [
          {
            "rule": "Compose a fixed low-resolution raster with the furniture pinned to the edges.",
            "basis": "record",
            "cites": [
              "token_rule:layout-3"
            ]
          },
          {
            "rule": "Keep it busy, with the centre clear for the subject and the perimeter carrying state.",
            "basis": "record",
            "cites": [
              "token_rule:density-6"
            ]
          },
          {
            "rule": "Rank by saturation and movement, not scale.",
            "basis": "record",
            "cites": [
              "token_rule:hierarchy-13"
            ]
          },
          {
            "rule": "Place and size everything on an 8px step.",
            "basis": "translation",
            "cites": [
              "claim:kcc:technique-1",
              "claim:kcc:form-1"
            ],
            "because": "Sprites are fixed-size bitmaps on a raster; a single step keeps every edge on the same grid of pixels."
          }
        ]
      },
      "shapeGeometry": {
        "tokens": {
          "radius": "0",
          "pixel": "4px",
          "border": "4px solid",
          "rendering": "crisp-edges"
        },
        "rules": [
          {
            "rule": "Draw with visible, hard-edged raster pixels and scan lines.",
            "basis": "record",
            "cites": [
              "token_rule:surface-8"
            ]
          },
          {
            "rule": "Scale raster artwork by whole numbers so every pixel stays square.",
            "basis": "translation",
            "cites": [
              "claim:transfer-1"
            ],
            "because": "A screen image is a grid of square pixels; any fractional scale smears them, which is how the record moves the sprite to screen."
          },
          {
            "rule": "Square corners, 4px borders, no anti-aliased curves.",
            "basis": "translation",
            "cites": [
              "token_rule:surface-8",
              "claim:failure-1"
            ],
            "because": "Everything on the screen is made of the same hard pixel; a rounded corner is a sub-pixel edge."
          }
        ]
      },
      "imagery": {
        "rules": [
          {
            "rule": "Use sprite illustration.",
            "basis": "record",
            "cites": [
              "token_rule:imagery-7"
            ]
          },
          {
            "rule": "Treat sprites as fixed-size objects composited over a background.",
            "basis": "record",
            "cites": [
              "claim:kcc:technique-1"
            ]
          },
          {
            "rule": "Draw sprites as SVG pixel grids with crisp edges, scaled by whole numbers.",
            "basis": "translation",
            "cites": [
              "claim:kcc:form-1",
              "claim:transfer-1"
            ],
            "because": "A sprite is a two-dimensional bitmap; SVG rects keep each pixel square at any whole-number scale."
          },
          {
            "rule": "Pixel look as a style is not a period choice.",
            "basis": "not_recorded",
            "cites": [
              "claim:kcc:technique-3"
            ],
            "guidance": "Practitioners of the time did not choose pixels as an aesthetic; say you are reproducing a constraint.",
            "silence": "source"
          }
        ]
      },
      "components": {
        "button": {
          "name": "Button",
          "becomes": "A start button: a flat yellow slab with a hard red block behind it, pressed by moving the full block distance in one step.",
          "anatomy": [
            "yellow field",
            "label in Press Start 2P, 16px",
            "red block offset 8px, 8px",
            "no radius, no gradient"
          ],
          "tokens": {
            "background": "#F2D22E",
            "color": "#060608",
            "offset": "8px 8px 0 #E23D28",
            "radius": "0",
            "press": "translate(8px, 8px)"
          },
          "states": {
            "default": "Yellow slab, red block behind.",
            "hover": "Field turns white.",
            "focus": "4px yellow outline, 3px outside.",
            "active": "Moves 8px, 8px onto its block in one step: no easing.",
            "disabled": "Grey field (#8a8a9c), no block, label unchanged."
          },
          "accessibility": [
            "Black on yellow at 13.5:1.",
            "At least 44px tall.",
            "The pixel face is set at 16px or larger, never below."
          ],
          "values": [
            {
              "rule": "Press by whole steps: the button jumps its full offset, it never slides.",
              "basis": "translation",
              "cites": [
                "token_rule:motion-14"
              ],
              "because": "Nothing eases and nothing has sub-pixel motion."
            },
            {
              "rule": "Keep the button flat: one palette colour, a hard block, no gradient.",
              "basis": "translation",
              "cites": [
                "token_rule:color-5",
                "claim:failure-1"
              ],
              "because": "A small indexed palette on black; gradients are refused."
            }
          ]
        },
        "card": {
          "name": "Card",
          "becomes": "A game screen: a navy field inside a cyan border and a magenta ring, its title in the pixel face.",
          "anatomy": [
            "4px cyan border",
            "4px black gap, 4px magenta ring",
            "navy field",
            "title in Press Start 2P, yellow",
            "body in Space Mono"
          ],
          "tokens": {
            "border": "4px solid #29D9D9",
            "ring": "0 0 0 4px #060608, 0 0 0 8px #E24AC4",
            "background": "#101018",
            "radius": "0"
          },
          "states": {
            "default": "Cyan border, magenta ring.",
            "hover": "The border turns yellow.",
            "focus": "4px yellow outline outside the ring."
          },
          "accessibility": [
            "White text on navy at 16.2:1.",
            "The whole card is one link; the title is its name."
          ],
          "values": [
            {
              "rule": "Frame each card as a screen of the same machine.",
              "basis": "translation",
              "cites": [
                "claim:failure-2",
                "claim:kcc:form-1"
              ],
              "because": "The record is a closed machine with state; every surface is one of its screens."
            },
            {
              "rule": "Keep the card's centre clear and put its state on the edges.",
              "basis": "translation",
              "cites": [
                "token_rule:density-6"
              ],
              "because": "Busy, with the centre kept clear for the subject and the perimeter carrying state."
            }
          ]
        },
        "input": {
          "name": "Input",
          "becomes": "A black entry field in a cyan border, its label above in the pixel face, a block caret.",
          "anatomy": [
            "4px cyan border",
            "black field",
            "label above in Press Start 2P, 12px",
            "text in Space Mono",
            "error in red with \"Error:\""
          ],
          "tokens": {
            "border": "4px solid #29D9D9",
            "background": "#060608",
            "caret": "#F2D22E",
            "radius": "0",
            "height": "2.75rem"
          },
          "states": {
            "default": "Cyan border.",
            "focus": "Border turns yellow, plus an outline.",
            "error": "Red message (4.8:1 on black) beginning \"Error:\", in Space Mono bold.",
            "disabled": "Border dashed grey."
          },
          "accessibility": [
            "The label is real text.",
            "The caret colour is decoration; focus is the yellow border and the outline.",
            "Error text is words, not colour alone."
          ],
          "values": [
            {
              "rule": "Give the field one palette colour for its border and black inside.",
              "basis": "translation",
              "cites": [
                "token_rule:color-5"
              ],
              "because": "A small indexed palette on black leaves no room for tints."
            },
            {
              "rule": "The sources do not document text entry.",
              "basis": "not_recorded",
              "cites": [],
              "guidance": "Do not model it on high-score initials entry; the research does not document it.",
              "silence": "source"
            }
          ]
        },
        "navigation": {
          "name": "Navigation",
          "becomes": "A menu screen: items in the pixel face, a blinking ▶ beside the current one.",
          "anatomy": [
            "items in Press Start 2P, 13px, capitals",
            "a ▶ marker in magenta beside the current item, blinking steps(1)",
            "dashed rules between items"
          ],
          "tokens": {
            "marker": "▶",
            "marker-color": "#E24AC4",
            "blink": "1s steps(1) infinite"
          },
          "states": {
            "default": "White capitals.",
            "hover": "Yellow capitals and the ▶ marker.",
            "focus": "4px yellow outline.",
            "current": "Yellow capitals, blinking ▶."
          },
          "accessibility": [
            "aria-current on the current page.",
            "The blink stops under reduced motion; the marker stays.",
            "At least 44px tall per item."
          ],
          "values": [
            {
              "rule": "Mark the current item by the one moving, brightest thing, not by size.",
              "basis": "translation",
              "cites": [
                "token_rule:hierarchy-13"
              ],
              "because": "Rank by saturation and movement, not scale."
            }
          ]
        }
      },
      "motion": {
        "spec": {
          "durations": {
            "blink": "1000ms",
            "bob": "1600ms",
            "walk": "12s in 48 steps",
            "flash": "250ms"
          },
          "easing": {
            "all": "steps(n) only"
          },
          "transforms": "whole-pixel translations on the 8px step",
          "entrance": "none: the screen is already running",
          "hover": "a colour change or a marker appearing, in one step",
          "reducedMotion": "Blinks, walks and bobs stop on a visible frame; counters stay."
        },
        "rules": [
          {
            "rule": "Move in integer steps: an attract loop, state-change flashes, nothing eased.",
            "basis": "record",
            "cites": [
              "token_rule:motion-14"
            ]
          },
          {
            "rule": "When nobody is using it, run an attract mode: the screen demonstrates itself.",
            "basis": "record",
            "cites": [
              "claim:kcc:interface-3"
            ]
          },
          {
            "rule": "No easing curves.",
            "basis": "record",
            "cites": [
              "claim:failure-1"
            ]
          }
        ]
      },
      "dimensions": [
        {
          "key": "furniture",
          "label": "On-screen furniture",
          "summary": "The machine keeps its state on the screen. A high score at the top and lives are documented; credits are our reading.",
          "tokens": {
            "hud-position": "top, pinned",
            "counter-digits": "4"
          },
          "values": [
            {
              "rule": "Show the high score at the top of the screen.",
              "basis": "record",
              "cites": [
                "claim:kcc:interface-1"
              ]
            },
            {
              "rule": "Keep lives in the state.",
              "basis": "record",
              "cites": [
                "claim:kcc:interface-2"
              ]
            },
            {
              "rule": "The sources do not specify where lives are drawn.",
              "basis": "not_recorded",
              "cites": [
                "claim:kcc:interface-2"
              ],
              "guidance": "The sources establish lives, not their position; place them with the other furniture and say so.",
              "silence": "source"
            },
            {
              "rule": "Add a credit counter to the furniture.",
              "basis": "translation",
              "cites": [
                "claim:gestalt.interface"
              ],
              "because": "Credits are part of our reading of the furniture; the research did not find them on screen."
            },
            {
              "rule": "Make every counter a real count.",
              "basis": "translation",
              "cites": [
                "claim:intent",
                "claim:gestalt.interface"
              ],
              "because": "The screen has to be legible to a stranger in seconds; a number that means nothing wastes the one glance."
            }
          ]
        }
      ],
      "notRecorded": [
        {
          "category": "color",
          "what": "Palette values",
          "why": "The record holds a small indexed palette; each board had its own."
        },
        {
          "category": "typography",
          "what": "A period font",
          "why": "Characters were drawn per board."
        },
        {
          "category": "components",
          "what": "Web interface conventions",
          "why": "The record documents on-screen furniture, not buttons, cards, fields or menus. The four components are translations."
        },
        {
          "category": "dimension.furniture",
          "what": "Where lives are drawn",
          "why": "Lives are documented as state, not as a position."
        }
      ],
      "silence": {
        "color": "source",
        "typography": "source",
        "gridLayout": "source",
        "shapeGeometry": "source",
        "imagery": "source",
        "components": "source",
        "motion": "source"
      },
      "uiNote": "The record documents interface conventions for Arcade. These four components are contemporary builds on those conventions, not historical artefacts."
    }
  }
}