{
  "version": "1.0.0",
  "title": "PointCast Games",
  "url": "https://pointcast.xyz/games/",
  "count": 126,
  "games": [
    {
      "slug": "mossbell",
      "name": "Mossbell",
      "family": "Cozy worlds",
      "kicker": "A little town with room for you",
      "description": "Walk a pocket-sized village, meet animal neighbors, collect curious finds, and make your house your own.",
      "accent": "#467b69",
      "controls": [
        "Move with WASD or arrow keys, or tap the map.",
        "Press E to talk nearby and H to go home. Choose a furnishing, then tap a floor tile.",
        "Use Invite a friend to open your town or paste a friend’s invitation."
      ],
      "steps": [
        "Meet Oona, Pella, and Boro; gather pond finds and decorate your little house.",
        "Bring three different pond finds to finish the town picnic.",
        "To visit together, choose Invite a friend in the game, open your town, and exchange its invitation and reply with your friend."
      ],
      "playUrl": "/games/mossbell/index.html",
      "players": "Solo; optional guest visit",
      "participation": [
        {
          "label": "Visit Mossbell",
          "url": "/games/mossbell/index.html",
          "description": "Start a village and follow the welcome steps."
        },
        {
          "label": "Invite a friend",
          "url": "/games/mossbell/index.html",
          "description": "Open Invite a friend in the game, choose Open my town, and exchange an invitation and reply for a direct peer visit."
        },
        {
          "label": "Download the village",
          "url": "/downloads/games/mossbell.zip",
          "description": "Keep the prepared browser game files and included launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/mossbell.zip",
        "type": "Local game pack",
        "note": "Prepared browser game ZIP with launch instructions. Play the village solo or exchange invitation and reply codes for a peer-to-peer visit."
      },
      "saveNote": "Your village saves in this browser. Export and import your save with the game’s save controls to move it to another copy.",
      "networkNote": "One host and one guest connect directly using invitation and reply codes. Internet visits use public connection discovery; some networks block direct visits. Local network play can skip public discovery.",
      "hero": "/images/games/mossbell-preview.png",
      "landing": "/play/games/mossbell/"
    },
    {
      "slug": "farm",
      "name": "Farm — Sam’s Plot",
      "family": "Cozy worlds",
      "kicker": "Nine tiles, a little patience",
      "description": "Plant four kinds of seed, water the little plot, and harvest what grows.",
      "accent": "#8b9856",
      "controls": [
        "Click or tap a plot tile.",
        "Choose a seed and use the watering and harvesting controls."
      ],
      "steps": [
        "Choose a seed and plant an empty tile.",
        "Water your crops, return to harvest, and plant again."
      ],
      "playUrl": "/farm",
      "players": "1 player",
      "participation": [
        {
          "label": "Visit your plot",
          "url": "/farm",
          "description": "Plant, water, and harvest through the on-screen controls."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/farm.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Your plot is saved in this browser.",
      "networkNote": "The planting and growing loop runs locally; no account or shared farm server is required.",
      "landing": "/play/games/farm/"
    },
    {
      "slug": "lucky-cat",
      "name": "Lucky Cat",
      "family": "Cozy worlds",
      "kicker": "Care, collect, and make a room",
      "description": "Care for a growing collection of sixty cats and unlock new companions through small achievements.",
      "accent": "#e4a176",
      "controls": [
        "Click or tap cats and room controls."
      ],
      "steps": [
        "Spend time with a cat and try the care activities.",
        "Earn achievements, meet more cats, and arrange your collection."
      ],
      "playUrl": "/lucky-cat/",
      "players": "1 player",
      "participation": [
        {
          "label": "Meet the cats",
          "url": "/lucky-cat/",
          "description": "Open the human care and collection room."
        }
      ],
      "editions": [
        {
          "name": "Lucky Cat V1",
          "url": "/lucky-cat/"
        },
        {
          "name": "Lucky Cat V2",
          "url": "/lucky-cat/v2/"
        }
      ],
      "download": {
        "url": "/downloads/games/lucky-cat.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Care progress and achievements are stored in this browser.",
      "networkNote": "The human care game uses local files. Signed agent registration, profiles, challenges, and actions need the live service.",
      "hero": "/lucky-cat/v2/social.png",
      "landing": "/play/games/lucky-cat/"
    },
    {
      "slug": "zen-cat-garden",
      "name": "Zen Cat Garden",
      "family": "Cozy worlds",
      "kicker": "A daily visit with your cats",
      "description": "Care for cats, discover collectible companions, and grow a quiet garden at your own pace.",
      "accent": "#92ab86",
      "controls": [
        "Click or tap the care and collection controls."
      ],
      "steps": [
        "Visit your garden and choose a care activity.",
        "Discover cats and revisit your collection."
      ],
      "playUrl": "/zen-cats",
      "players": "1 player",
      "participation": [
        {
          "label": "Visit the garden",
          "url": "/zen-cats",
          "description": "Care for cats and browse the collection."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/zen-cat-garden.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Garden care and collection progress stay in this browser.",
      "networkNote": "Local care is separate from optional wallet and Tezos features. Live minting, metadata, and chain actions require a connection and the supported service.",
      "hero": "/images/zen-cats/world/world-atelier-proof.webp",
      "landing": "/play/games/zen-cat-garden/"
    },
    {
      "slug": "pocket-rocks",
      "name": "Pocket Rocks",
      "family": "Cozy worlds",
      "kicker": "Small specimens, endless turns",
      "description": "Discover seeded rocks from ten families, turn them in your hand, and keep a personal specimen cabinet.",
      "accent": "#ac9072",
      "controls": [
        "Drag to turn a specimen.",
        "Use the find, cabinet, share, and export controls."
      ],
      "steps": [
        "Find a specimen and inspect it from several angles.",
        "Save a favorite to your cabinet or export its artwork."
      ],
      "playUrl": "/rocks",
      "players": "1 player",
      "participation": [
        {
          "label": "Find a specimen",
          "url": "/rocks",
          "description": "Discover, turn, and save a rock in your cabinet."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/pocket-rocks.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Saved specimens stay in this browser; exported artwork is a separate file.",
      "networkNote": "The specimen renderer and cabinet run in browser files. Opening shared links needs a connection.",
      "hero": "/images/rocks/cover.png",
      "landing": "/play/games/pocket-rocks/"
    },
    {
      "slug": "nouns-wood-chop",
      "name": "Nouns Wood Chop",
      "family": "Cozy worlds",
      "kicker": "Chop, bundle, grow",
      "description": "Choose Noun helpers, chop the woodlot, fulfill orders, and gather stamps and seeds.",
      "accent": "#b08d50",
      "controls": [
        "Click or tap trees and the on-screen work controls."
      ],
      "steps": [
        "Choose helpers and chop a bundle of wood.",
        "Fill an order, collect its reward, and improve your woodlot."
      ],
      "playUrl": "/nouns-wood-chop",
      "players": "1 player",
      "participation": [
        {
          "label": "Enter the woodlot",
          "url": "/nouns-wood-chop",
          "description": "Choose helpers and work on an order."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/nouns-wood-chop.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Progress and best scores stay in this browser. Clearing browser storage removes them.",
      "networkNote": "The work and collection loop runs locally. Some Noun portraits come from noun.pics and need a connection.",
      "hero": "/images/nouns-wood-chop/pixel-woodlot.svg",
      "landing": "/play/games/nouns-wood-chop/"
    },
    {
      "slug": "crystal-ball-pass",
      "name": "Crystal Ball Pass",
      "family": "Cozy worlds",
      "kicker": "An expedition through a strange pass",
      "description": "Choose a route through an illustrated expedition, follow clues, and discover what waits beyond the pass.",
      "accent": "#9689c6",
      "controls": [
        "Click or tap the illustrated route choices.",
        "Use the sound, camp-magic, and restart controls."
      ],
      "steps": [
        "Begin the passage and choose a route at each scene.",
        "Follow its discoveries, then try the Afterlight edition."
      ],
      "playUrl": "/crystal-ball-pass/play",
      "players": "1 player",
      "participation": [
        {
          "label": "Begin the expedition",
          "url": "/crystal-ball-pass/play",
          "description": "Enter the original playable route."
        },
        {
          "label": "Visit the trailhead",
          "url": "/crystal-ball-pass",
          "description": "Read the expedition introduction and choose an edition."
        }
      ],
      "editions": [
        {
          "name": "Original expedition",
          "url": "/crystal-ball-pass/play"
        },
        {
          "name": "Afterlight",
          "url": "/crystal-ball-pass/v2"
        }
      ],
      "download": {
        "url": "/downloads/games/crystal-ball-pass.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Use each edition’s in-game progress controls; browser-local state is not a cloud save.",
      "networkNote": "The core game runs in browser files. Linked public pages need an internet connection.",
      "hero": "/images/crystal-ball-pass/og.png",
      "landing": "/play/games/crystal-ball-pass/"
    },
    {
      "slug": "second-shift",
      "name": "Second Shift",
      "family": "Cozy worlds",
      "kicker": "Six orders before closing",
      "description": "A finite factory clicker with six orders and five capabilities to discover. Finish a shift and see what your small operation can do.",
      "accent": "#ed965a",
      "controls": [
        "Click or tap orders and factory upgrades."
      ],
      "steps": [
        "Open the factory and work on the first order.",
        "Unlock capabilities and finish the six-order shift."
      ],
      "playUrl": "https://el-segundo-2026-atlas.mhoydich.chatgpt.site/second-shift",
      "players": "1 player",
      "participation": [
        {
          "label": "Open the factory",
          "url": "https://el-segundo-2026-atlas.mhoydich.chatgpt.site/second-shift",
          "description": "Play on the published satellite."
        },
        {
          "label": "PointCast introduction",
          "url": "/second-shift",
          "description": "Read the local introduction and launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/second-shift.zip",
        "type": "Online launch kit",
        "note": "Download a launch kit with the live game link and instructions. The game needs its online service; server code is not included."
      },
      "saveNote": "Factory progress is stored by the game on its own site and browser.",
      "networkNote": "The factory runs on an external published site; this download opens that live site.",
      "hero": "/images/second-shift/social-card.png",
      "landing": "/play/games/second-shift/"
    },
    {
      "slug": "ghost-town-skyward",
      "name": "Ghost Town · Skyward",
      "family": "Cozy worlds",
      "kicker": "Three skies, little lights",
      "description": "Guide a ghost through a small game of lights and changing skies beside a music-video room.",
      "accent": "#b6a5d8",
      "controls": [
        "Drag across the sky, tap the arrows, or use Left/Right and A/D.",
        "Space pauses while the game is focused."
      ],
      "steps": [
        "Start floating and steer toward the little lights.",
        "Collect seven lights to open each of the three skies."
      ],
      "playUrl": "/ghost-town",
      "players": "1 player",
      "participation": [
        {
          "label": "Start floating",
          "url": "/ghost-town",
          "description": "Guide the ghost through its three skies."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/ghost-town-skyward.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "The current flight stays in the open page. Start over begins a fresh trip.",
      "networkNote": "The ghost game uses browser files. The accompanying YouTube video requires an internet connection and is not included in the download.",
      "hero": "/images/ghost-town/video.jpg",
      "landing": "/play/games/ghost-town-skyward/"
    },
    {
      "slug": "nouns-battler",
      "name": "Nouns Battler",
      "family": "Nouns & strategy",
      "kicker": "A deterministic best of three",
      "description": "Pick Noun fighters and stances for a compact duel whose result follows the same rules every time.",
      "accent": "#d05c48",
      "controls": [
        "Select fighters and a stance with the on-screen controls."
      ],
      "steps": [
        "Choose both fighters and set your approach.",
        "Resolve the best-of-three duel and inspect or download the match record."
      ],
      "playUrl": "/battle",
      "players": "1 player",
      "participation": [
        {
          "label": "Play a duel",
          "url": "/battle",
          "description": "Run the original local fighter duel."
        },
        {
          "label": "Battle log",
          "url": "/battle-log",
          "description": "Inspect the public battle-log surface."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/nouns-battler.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Match records stay in this browser; the game also offers a JSON match download.",
      "networkNote": "Duel resolution runs locally. Remote Noun portraits and public battle-log pages need a connection.",
      "hero": "/images/og/battle.png",
      "landing": "/play/games/nouns-battler/"
    },
    {
      "slug": "noun-battler-pacific-48",
      "name": "Noun Battler — Pacific 48",
      "family": "Nouns & strategy",
      "kicker": "Five rounds, forty-eight fighters",
      "description": "Build a fighter, run a five-round stat battle, and earn browser-local stamps in the Pacific 48 game.",
      "accent": "#cb765c",
      "controls": [
        "Select fighters, stats, and battle controls."
      ],
      "steps": [
        "Open the satellite and choose a fighter.",
        "Play five rounds and inspect your passport stamps."
      ],
      "playUrl": "https://noun-battler.mhoydich.chatgpt.site",
      "players": "1 player",
      "participation": [
        {
          "label": "Play Pacific 48",
          "url": "https://noun-battler.mhoydich.chatgpt.site",
          "description": "Open the published game."
        },
        {
          "label": "PointCast game door",
          "url": "/noun-battler",
          "description": "Read the introduction and launch the satellite."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/noun-battler-pacific-48.zip",
        "type": "Online launch kit",
        "note": "Download a launch kit with the live game link and instructions. The game needs its online service; server code is not included."
      },
      "saveNote": "Stamps and game progress belong to the satellite’s browser storage.",
      "networkNote": "The playable runtime is hosted on an external site. The launch kit requires internet.",
      "hero": "/drum-directory/screenshots/noun-battler.jpg",
      "landing": "/play/games/noun-battler-pacific-48/"
    },
    {
      "slug": "nouns-nation-battler",
      "name": "Nouns Nation Battler",
      "family": "Nouns & strategy",
      "kicker": "Thirty against thirty",
      "description": "Watch and direct a browser-local Nouns league, run seeded battles, and explore its seasons, replays, and reports.",
      "accent": "#5877bd",
      "controls": [
        "Use the league, simulation, replay, and speed controls."
      ],
      "steps": [
        "Open the league and select a battle or season.",
        "Run the simulation, inspect a replay, and compare the battle desks."
      ],
      "playUrl": "/games/nouns-nation-battler/",
      "players": "Solo league director; simulated teams",
      "participation": [
        {
          "label": "Open the league",
          "url": "/games/nouns-nation-battler/",
          "description": "Run the compiled browser league."
        },
        {
          "label": "Join Nouns Nation",
          "url": "/nouns-nation/join",
          "description": "See the community participation door."
        },
        {
          "label": "Sports reenactment",
          "url": "/nouns-nation-sports-reenactment",
          "description": "Create a setup and launch it in the existing league."
        }
      ],
      "editions": [
        {
          "name": "Battle Desk",
          "url": "/nouns-nation-battler"
        },
        {
          "name": "Battle Desk V2",
          "url": "/nouns-nation-battler-v2"
        },
        {
          "name": "Battle Desk V3",
          "url": "/nouns-nation-battler-v3"
        },
        {
          "name": "TV view",
          "url": "/nouns-nation-battler-tv"
        },
        {
          "name": "Mobile view",
          "url": "/nouns-nation-battler-mobile"
        }
      ],
      "download": {
        "url": "/downloads/games/nouns-nation-battler.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "League seasons and reports are stored by the local game in this browser.",
      "networkNote": "The included league runs locally. Agent Arena, agent registration, and community participation are separate online services.",
      "hero": "/images/og/nouns-battler-live.png",
      "landing": "/play/games/nouns-nation-battler/"
    },
    {
      "slug": "nouns-agent-arena",
      "name": "Nouns Agent Arena",
      "family": "Nouns & strategy",
      "kicker": "A twelve-a-side exhibition",
      "description": "Choose a gang, tactics, and seed, then let the live arena run a twelve-against-twelve exhibition with a replay.",
      "accent": "#5b68a5",
      "controls": [
        "Choose a gang, tactics, and seed; use Run and Replay."
      ],
      "steps": [
        "Set up a free exhibition.",
        "Run the match and inspect its replay and receipt."
      ],
      "playUrl": "/nouns-nation-battler-arena",
      "players": "Solo director; simulated teams",
      "participation": [
        {
          "label": "Run an exhibition",
          "url": "/nouns-nation-battler-arena",
          "description": "Use the public arena controls."
        },
        {
          "label": "Arena API",
          "url": "/api/nouns-battler/arena",
          "description": "Read the live arena catalog for programmatic participation."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/nouns-agent-arena.zip",
        "type": "Online launch kit",
        "note": "Download a launch kit with the live game link and instructions. The game needs its online service; server code is not included."
      },
      "saveNote": "Arena responses and receipts come from the live service; keep a copy through the available controls.",
      "networkNote": "Match execution depends on PointCast’s arena API. The launch kit does not contain that backend.",
      "hero": "/images/og/nouns-battler-live.png",
      "landing": "/play/games/nouns-agent-arena/"
    },
    {
      "slug": "nouns-open-circuit",
      "name": "Nouns Open Circuit",
      "family": "Nouns & strategy",
      "kicker": "Clubs, tactics, and a season",
      "description": "Build a club and direct local league fixtures with tactics, simulated rivals, and match receipts.",
      "accent": "#6f8b6c",
      "controls": [
        "Choose club, roster, and tactics with the on-screen controls."
      ],
      "steps": [
        "Create a club and prepare its first fixture.",
        "Run local matches and inspect the circuit’s receipts."
      ],
      "playUrl": "/nouns-open-circuit",
      "players": "Solo director; simulated clubs",
      "participation": [
        {
          "label": "Enter the circuit",
          "url": "/nouns-open-circuit",
          "description": "Build and direct your local club."
        },
        {
          "label": "Circuit protocol",
          "url": "/nouns-open-circuit.json",
          "description": "Read the public participation description."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/nouns-open-circuit.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Club and fixture state are stored in this browser.",
      "networkNote": "The built-in fixture simulation runs locally. Public protocol links and any separate live agent activity require a connection.",
      "hero": "/images/og/battle.png",
      "landing": "/play/games/nouns-open-circuit/"
    },
    {
      "slug": "saturday-myth-machine",
      "name": "Saturday Myth Machine",
      "family": "Nouns & strategy",
      "kicker": "A mascot atlas that fights",
      "description": "Choose from twenty-five mascot cards and eight creature classes for a three-round clash in a changing arena.",
      "accent": "#c49054",
      "controls": [
        "Choose cards and an arena; use the clash and replay controls."
      ],
      "steps": [
        "Pick your mascot cards and inspect their creature types.",
        "Run a three-round clash and try another arena."
      ],
      "playUrl": "/mascot-battler",
      "players": "1 player",
      "participation": [
        {
          "label": "Play a round",
          "url": "/mascot-battler",
          "description": "Open the game and follow its on-screen instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/saturday-myth-machine.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Use the local game’s match controls; the atlas is not a shared competitive ladder.",
      "networkNote": "The core game runs in browser files. Linked public pages need an internet connection.",
      "hero": "/images/og/b/0522.png",
      "landing": "/play/games/saturday-myth-machine/"
    },
    {
      "slug": "agent-derby",
      "name": "Agent Derby",
      "family": "Nouns & strategy",
      "kicker": "Same seed, same race",
      "description": "Set a seed, track, and field of agent horses, then watch a deterministic derby and share a replayable race.",
      "accent": "#cb8970",
      "controls": [
        "Choose track and entrants; start or replay the race."
      ],
      "steps": [
        "Set the field and race seed.",
        "Watch the derby and share the same setup with a friend."
      ],
      "playUrl": "/agent-derby",
      "players": "Solo spectator or shared race setup",
      "participation": [
        {
          "label": "Run a derby",
          "url": "/agent-derby",
          "description": "Create a seeded race in the browser."
        },
        {
          "label": "Agent participation brief",
          "url": "/agent-derby.json",
          "description": "Read the race setup and sharing format."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/agent-derby.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Race setups can be shared by URL; a replay reproduces the same seeded race.",
      "networkNote": "Race simulation runs locally. Opening a shared PointCast URL or agent brief requires a connection.",
      "hero": "/images/agent-derby/posters/01-trapper-keeper.png",
      "landing": "/play/games/agent-derby/"
    },
    {
      "slug": "ai-grand-prix",
      "name": "AI Grand Prix — Race Lab",
      "family": "Nouns & strategy",
      "kicker": "Predictions and practice receipts",
      "description": "Try four practice races, lock predictions, enter a result, and keep play-point receipts for your own season.",
      "accent": "#c4a760",
      "controls": [
        "Select a practice race and prediction.",
        "Use Lock, result-entry, and export controls."
      ],
      "steps": [
        "Read a fixed race brief and lock a practice prediction.",
        "Record the result and export the local season receipt."
      ],
      "playUrl": "/ai-grand-prix/",
      "players": "1 player",
      "participation": [
        {
          "label": "Enter Race Lab",
          "url": "/ai-grand-prix/",
          "description": "Use the browser practice lab and its receipts."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/ai-grand-prix.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Practice predictions, play points, and season receipts are local browser data; export JSON to keep a copy.",
      "networkNote": "The practice lab runs in browser files. Entered results are user-provided; live wagering and an independently verified model benchmark are not part of this game.",
      "landing": "/play/games/ai-grand-prix/"
    },
    {
      "slug": "last-tag",
      "name": "Last Tag",
      "family": "Quick games",
      "kicker": "One person, five bots, one shrinking yard",
      "description": "Keep moving, dodge the other runners, and finish the timer without being the last one tagged.",
      "accent": "#de735d",
      "controls": [
        "Move with WASD or arrow keys; Space dashes.",
        "On touch screens, drag to move and use DASH."
      ],
      "steps": [
        "Choose a 30, 60, or 90-second round.",
        "Run, dash, and survive the shrinking yard."
      ],
      "playUrl": "/last-tag",
      "players": "1 human against 5 bots",
      "participation": [
        {
          "label": "Play a round",
          "url": "/last-tag",
          "description": "Open the game and follow its on-screen instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/last-tag.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Progress and best scores stay in this browser. Clearing browser storage removes them.",
      "networkNote": "The bot game runs locally. Noun portraits are fetched from noun.pics when available.",
      "hero": "/images/og/b/0389.png",
      "landing": "/play/games/last-tag/"
    },
    {
      "slug": "tag-signal",
      "name": "Tag Signal v2",
      "family": "Quick games",
      "kicker": "Tag red, catch gold, keep the heat",
      "description": "Chase a red runner, collect golden signals, and stretch a short round with combos and bonus time.",
      "accent": "#ef9651",
      "controls": [
        "WASD or arrow keys; click or drag on touch screens."
      ],
      "steps": [
        "Start a 35-second round and find the red runner.",
        "Collect golden signals and keep your combo going."
      ],
      "playUrl": "/games/tag-signal/",
      "players": "1 player",
      "participation": [
        {
          "label": "Play Tag Signal",
          "url": "/games/tag-signal/",
          "description": "Open the stand-alone game."
        },
        {
          "label": "Embed demo",
          "url": "/games/tag-signal/embed-demo.html",
          "description": "See the embeddable game and integration example."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/tag-signal.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Local scores stay in this browser.",
      "networkNote": "The default game does not configure a telemetry endpoint. Custom embeds can add an endpoint; linked hosting and integrations require a connection.",
      "hero": "/images/og/b/0389.png",
      "landing": "/play/games/tag-signal/"
    },
    {
      "slug": "noun-court-doubles",
      "name": "Noun Court Doubles",
      "family": "Sports & party",
      "kicker": "A small court with a big rally",
      "description": "Choose shots, play the CPU, or pass the screen between two local players in a Nouns pickleball match.",
      "accent": "#668a5f",
      "controls": [
        "Choose your shot with the on-screen buttons.",
        "Use the displayed aim and match controls."
      ],
      "steps": [
        "Choose a court edition and CPU or Pass & Play mode.",
        "Select shots, rally, and play out the match."
      ],
      "playUrl": "/games/noun-pickleball/",
      "players": "1 player vs CPU or 2 local players",
      "participation": [
        {
          "label": "Play a round",
          "url": "/games/noun-pickleball/",
          "description": "Open the game and follow its on-screen instructions."
        }
      ],
      "editions": [
        {
          "name": "Classic",
          "url": "/games/noun-pickleball/versions/classic/"
        },
        {
          "name": "Stadium",
          "url": "/games/noun-pickleball/versions/stadium/"
        },
        {
          "name": "League",
          "url": "/games/noun-pickleball/versions/league/"
        },
        {
          "name": "Broadcast",
          "url": "/games/noun-pickleball/versions/broadcast/"
        },
        {
          "name": "Summer 2026",
          "url": "/games/noun-pickleball/versions/summer-2026/"
        }
      ],
      "download": {
        "url": "/downloads/games/noun-court-doubles.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Match and edition state are local to the browser.",
      "networkNote": "CPU and Pass & Play use local browser files. Pass & Play is two people sharing a screen.",
      "landing": "/play/games/noun-court-doubles/"
    },
    {
      "slug": "solitaire-v2",
      "name": "Solitaire v2",
      "family": "Retro arcade",
      "kicker": "KLONDIKE · DRAW ONE",
      "description": "Move cards through stock, waste, tableau, and foundations with undo, hints, and a local best time.",
      "accent": "#45857f",
      "controls": [
        "Click or tap cards and their destination piles."
      ],
      "steps": [
        "Deal a game and expose useful cards.",
        "Build the foundations and clear the table."
      ],
      "playUrl": "/solitaire-v2",
      "players": "1 player",
      "participation": [
        {
          "label": "Play Solitaire v2",
          "url": "/solitaire-v2",
          "description": "Open this Retro Arcade game."
        },
        {
          "label": "Retro Arcade desktop",
          "url": "/win95-games",
          "description": "Choose another card or puzzle game."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/solitaire-v2.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Progress and best scores stay in this browser. Clearing browser storage removes them.",
      "networkNote": "Core rules, best scores, and achievements run locally. Some Noun portraits use noun.pics and need a connection.",
      "hero": "/images/games/solitaire-v2-bg.webp",
      "landing": "/play/games/solitaire-v2/"
    },
    {
      "slug": "nouns-memory-v2",
      "name": "Nouns Memory v2",
      "family": "Retro arcade",
      "kicker": "PAIRS · LOCAL BEST",
      "description": "Flip Nouns, find twins, choose a difficulty, and chase a perfect memory run.",
      "accent": "#45857f",
      "controls": [
        "Click or tap two cards to find a pair."
      ],
      "steps": [
        "Choose a difficulty and turn over two cards.",
        "Remember their faces and clear every pair."
      ],
      "playUrl": "/nouns-memory-v2",
      "players": "1 player",
      "participation": [
        {
          "label": "Play Nouns Memory v2",
          "url": "/nouns-memory-v2",
          "description": "Open this Retro Arcade game."
        },
        {
          "label": "Retro Arcade desktop",
          "url": "/win95-games",
          "description": "Choose another card or puzzle game."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/nouns-memory-v2.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Progress and best scores stay in this browser. Clearing browser storage removes them.",
      "networkNote": "Core rules, best scores, and achievements run locally. Some Noun portraits use noun.pics and need a connection.",
      "hero": "/drum-directory/screenshots/nouns-memory-v2.jpg",
      "landing": "/play/games/nouns-memory-v2/"
    },
    {
      "slug": "nouns-pyramid-v2",
      "name": "Nouns Pyramid v2",
      "family": "Retro arcade",
      "kicker": "CARDS THAT ADD TO THIRTEEN",
      "description": "Clear exposed cards that add to thirteen, with undo, recycle counts, and pair hints.",
      "accent": "#45857f",
      "controls": [
        "Click or tap exposed card pairs; use stock, undo, and hint controls."
      ],
      "steps": [
        "Look for exposed cards that add to thirteen.",
        "Use the stock and clear the pyramid."
      ],
      "playUrl": "/nouns-pyramid-v2",
      "players": "1 player",
      "participation": [
        {
          "label": "Play Nouns Pyramid v2",
          "url": "/nouns-pyramid-v2",
          "description": "Open this Retro Arcade game."
        },
        {
          "label": "Retro Arcade desktop",
          "url": "/win95-games",
          "description": "Choose another card or puzzle game."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/nouns-pyramid-v2.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Progress and best scores stay in this browser. Clearing browser storage removes them.",
      "networkNote": "Core rules, best scores, and achievements run locally. Some Noun portraits use noun.pics and need a connection.",
      "hero": "/images/games/arcade-desktop-wallpaper.webp",
      "landing": "/play/games/nouns-pyramid-v2/"
    },
    {
      "slug": "nouns-mines-v2",
      "name": "Nouns Mines v2",
      "family": "Retro arcade",
      "kicker": "REVEAL · FLAG · CLEAR",
      "description": "Read the numbered clues, flag suspected mines, and clear the field without opening a mine.",
      "accent": "#45857f",
      "controls": [
        "Click or tap to reveal; use the game’s flag control."
      ],
      "steps": [
        "Choose a field and reveal your first tile.",
        "Use the numbers to flag mines and clear safe tiles."
      ],
      "playUrl": "/nouns-mines-v2",
      "players": "1 player",
      "participation": [
        {
          "label": "Play Nouns Mines v2",
          "url": "/nouns-mines-v2",
          "description": "Open this Retro Arcade game."
        },
        {
          "label": "Retro Arcade desktop",
          "url": "/win95-games",
          "description": "Choose another card or puzzle game."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/nouns-mines-v2.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Progress and best scores stay in this browser. Clearing browser storage removes them.",
      "networkNote": "Core rules, best scores, and achievements run locally. Some Noun portraits use noun.pics and need a connection.",
      "hero": "/images/games/arcade-desktop-wallpaper.webp",
      "landing": "/play/games/nouns-mines-v2/"
    },
    {
      "slug": "drum-says",
      "name": "Drum Says",
      "family": "Drum arcade",
      "kicker": "MEMORY · FOUR PADS",
      "description": "A Noun calls a growing pattern on four drums. Echo it back and hold the thread for one more round.",
      "accent": "#ff6b8a",
      "controls": [
        "Tap pads · keys 1–4"
      ],
      "steps": [
        "Listen to the four-pad pattern.",
        "Echo the pattern and survive one more round."
      ],
      "playUrl": "/drum-says",
      "players": "1 player",
      "participation": [
        {
          "label": "Play Drum Says",
          "url": "/drum-says",
          "description": "Start a local scored round."
        },
        {
          "label": "Drum Arcade",
          "url": "/drum-games",
          "description": "Explore the five-game shelf and local achievements."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/drum-says.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Best scores and achievements are stored in this browser.",
      "networkNote": "The scored round runs locally. Shared Drum rooms and public social surfaces require a connection.",
      "hero": "/drum-directory/screenshots/drum-says.jpg",
      "landing": "/play/games/drum-says/"
    },
    {
      "slug": "drum-quickdraw",
      "name": "Quick Draw",
      "family": "Drum arcade",
      "kicker": "REACTION · TEN DRAWS",
      "description": "Wait for gold, ignore the feints, then strike. Ten clean draws become one reaction-time grade.",
      "accent": "#f6c15e",
      "controls": [
        "Tap pad · Space"
      ],
      "steps": [
        "Start ten draws and wait for the gold cue.",
        "Ignore feints and compare your reaction-time grade."
      ],
      "playUrl": "/drum-quickdraw",
      "players": "1 player",
      "participation": [
        {
          "label": "Play Quick Draw",
          "url": "/drum-quickdraw",
          "description": "Start a local scored round."
        },
        {
          "label": "Drum Arcade",
          "url": "/drum-games",
          "description": "Explore the five-game shelf and local achievements."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/drum-quickdraw.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Best scores and achievements are stored in this browser.",
      "networkNote": "The scored round runs locally. Shared Drum rooms and public social surfaces require a connection.",
      "hero": "/drum-directory/screenshots/drum-quickdraw.jpg",
      "landing": "/play/games/drum-quickdraw/"
    },
    {
      "slug": "drum-fill",
      "name": "Fill the Bar",
      "family": "Drum arcade",
      "kicker": "LISTEN · FIND THE GAP",
      "description": "An eight-step groove has a hole in it. Land a tom in the empty step as the tempo and missing hits multiply.",
      "accent": "#8aeac0",
      "controls": [
        "Tap fill · Space"
      ],
      "steps": [
        "Listen for the missing step in the groove.",
        "Tap the gap and keep up as the pattern gets harder."
      ],
      "playUrl": "/drum-fill",
      "players": "1 player",
      "participation": [
        {
          "label": "Play Fill the Bar",
          "url": "/drum-fill",
          "description": "Start a local scored round."
        },
        {
          "label": "Drum Arcade",
          "url": "/drum-games",
          "description": "Explore the five-game shelf and local achievements."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/drum-fill.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Best scores and achievements are stored in this browser.",
      "networkNote": "The scored round runs locally. Shared Drum rooms and public social surfaces require a connection.",
      "hero": "/drum-directory/screenshots/drum-fill.jpg",
      "landing": "/play/games/drum-fill/"
    },
    {
      "slug": "drum-runner",
      "name": "Beat Runner",
      "family": "Drum arcade",
      "kicker": "LOOP SIEGE · BUILD · DEFEND",
      "description": "Build a 16-step drum loop under fire. Your next loop echoes as ghost attacks while you defend the center.",
      "accent": "#7ac8ed",
      "controls": [
        "Four attack drums · D F J K, arrows, or tap"
      ],
      "steps": [
        "Build your sixteen-step drum loop.",
        "Attack and defend as the loop returns as ghost attacks."
      ],
      "playUrl": "/drum-runner",
      "players": "1 player",
      "participation": [
        {
          "label": "Play Beat Runner",
          "url": "/drum-runner",
          "description": "Start a local scored round."
        },
        {
          "label": "Drum Arcade",
          "url": "/drum-games",
          "description": "Explore the five-game shelf and local achievements."
        }
      ],
      "editions": [
        {
          "name": "Loop Siege",
          "url": "/drum-runner"
        },
        {
          "name": "Pulse Arena",
          "url": "/drum-runner-v6"
        },
        {
          "name": "Bright Miles",
          "url": "/drum-runner-v5"
        },
        {
          "name": "Road Band",
          "url": "/drum-runner-v4"
        },
        {
          "name": "Pocket",
          "url": "/drum-runner-v3"
        },
        {
          "name": "Postcards",
          "url": "/drum-runner-v2"
        },
        {
          "name": "Endless",
          "url": "/drum-runner-v1"
        }
      ],
      "download": {
        "url": "/downloads/games/drum-runner.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Best scores and achievements are stored in this browser.",
      "networkNote": "The scored round runs locally. Shared Drum rooms and public social surfaces require a connection.",
      "hero": "/drum-directory/screenshots/drum-runner.jpg",
      "landing": "/play/games/drum-runner/"
    },
    {
      "slug": "drum-steady",
      "name": "Steady Hands",
      "family": "Drum arcade",
      "kicker": "SILENT TEMPO · 32 BEATS",
      "description": "Four clicks set the pulse, then the guide disappears. Hold the tempo by feel for thirty-two taps.",
      "accent": "#b99cff",
      "controls": [
        "Tap pad · Space"
      ],
      "steps": [
        "Listen to the four guide clicks.",
        "Keep thirty-two taps steady after the guide goes silent."
      ],
      "playUrl": "/drum-steady",
      "players": "1 player",
      "participation": [
        {
          "label": "Play Steady Hands",
          "url": "/drum-steady",
          "description": "Start a local scored round."
        },
        {
          "label": "Drum Arcade",
          "url": "/drum-games",
          "description": "Explore the five-game shelf and local achievements."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/drum-steady.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Best scores and achievements are stored in this browser.",
      "networkNote": "The scored round runs locally. Shared Drum rooms and public social surfaces require a connection.",
      "hero": "/drum-directory/screenshots/drum-steady.jpg",
      "landing": "/play/games/drum-steady/"
    },
    {
      "slug": "drum-solo",
      "name": "Drum Solo",
      "family": "Drum arcade",
      "kicker": "A three-track falling-note campaign",
      "description": "Play a four-lane drum campaign, choose your Nouns, and collect achievements through three tracks.",
      "accent": "#b777aa",
      "controls": [
        "Use A, S, K, and L, or tap the four lanes."
      ],
      "steps": [
        "Choose a track and your Noun team.",
        "Hit falling notes in the four lanes and improve your local campaign score."
      ],
      "playUrl": "/drum-solo",
      "players": "1 player",
      "participation": [
        {
          "label": "Play a round",
          "url": "/drum-solo",
          "description": "Open the game and follow its on-screen instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/drum-solo.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Progress and best scores stay in this browser. Clearing browser storage removes them.",
      "networkNote": "The core game runs in browser files. Linked public pages need an internet connection.",
      "hero": "/images/og-drum.png",
      "landing": "/play/games/drum-solo/"
    },
    {
      "slug": "noun-rush",
      "name": "Noun Rush",
      "family": "Drum arcade",
      "kicker": "Four seconds to make a mark",
      "description": "A tiny scored tapping rush inside the Drum v3 room. See how much you can fit into four seconds.",
      "accent": "#e8a64f",
      "controls": [
        "Tap the Noun Rush game control."
      ],
      "steps": [
        "Open Drum v3 and find Noun Rush.",
        "Start a four-second round and try to beat your local best."
      ],
      "playUrl": "/drum-v3#v3-rush",
      "players": "1 player",
      "participation": [
        {
          "label": "Play a round",
          "url": "/drum-v3#v3-rush",
          "description": "Open the game and follow its on-screen instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/noun-rush.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Progress and best scores stay in this browser. Clearing browser storage removes them.",
      "networkNote": "Noun Rush is a local microgame. Spotify playback and shared room features on the surrounding page need a connection.",
      "hero": "/images/og-drum.png",
      "landing": "/play/games/noun-rush/"
    },
    {
      "slug": "whack-a-noun",
      "name": "Whack-a-Noun",
      "family": "Drum arcade",
      "kicker": "Nine burrows, sixty seconds",
      "description": "Bonk popping Nouns, build a combo, and watch for golden targets during a one-minute round.",
      "accent": "#be8d56",
      "controls": [
        "Click or tap a Noun as it appears."
      ],
      "steps": [
        "Start a sixty-second round.",
        "Bonk the targets, build your combo, and catch golden bonuses."
      ],
      "playUrl": "/drum-noun-whack",
      "players": "1 player",
      "participation": [
        {
          "label": "Play a round",
          "url": "/drum-noun-whack",
          "description": "Open the game and follow its on-screen instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/whack-a-noun.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Progress and best scores stay in this browser. Clearing browser storage removes them.",
      "networkNote": "The scored round runs locally. Noun portraits and optional shared sound broadcasts require the live network.",
      "hero": "/images/og-drum.png",
      "landing": "/play/games/whack-a-noun/"
    },
    {
      "slug": "noun-crossing",
      "name": "The Noun Crossing",
      "family": "Drum arcade",
      "kicker": "Keep the zebra crossing moving",
      "description": "Time your waves as Nouns arrive on the zebra stripes and keep the crossing flowing for sixty seconds.",
      "accent": "#dca957",
      "controls": [
        "Tap the crossing control in time with the arriving Nouns."
      ],
      "steps": [
        "Start a sixty-second crossing shift.",
        "Wave at the right moment and improve your local score."
      ],
      "playUrl": "/drum-noun-crossing",
      "players": "1 player",
      "participation": [
        {
          "label": "Play a round",
          "url": "/drum-noun-crossing",
          "description": "Open the game and follow its on-screen instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/noun-crossing.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Progress and best scores stay in this browser. Clearing browser storage removes them.",
      "networkNote": "The scored crossing runs locally. Noun portraits and optional shared sound broadcasts require a connection.",
      "hero": "/images/og-drum.png",
      "landing": "/play/games/noun-crossing/"
    },
    {
      "slug": "drum-duel",
      "name": "Duel",
      "family": "Drum arcade",
      "kicker": "JOIN THE QUEUE · TAP FOR TWENTY SECONDS",
      "description": "Join a shared queue and race another visitor in a twenty-second tapping duel.",
      "accent": "#c33a2e",
      "controls": [
        "Tap the on-screen controls."
      ],
      "steps": [
        "Join the queue and wait for an opponent.",
        "Tap during the twenty-second race and watch the result."
      ],
      "playUrl": "/drum-duel",
      "players": "2 online players",
      "participation": [
        {
          "label": "Enter Duel",
          "url": "/drum-duel",
          "description": "Open the live room and follow its joining controls."
        },
        {
          "label": "Drum directory",
          "url": "/drum-directory",
          "description": "Find the connected room or display for your group."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/drum-duel.zip",
        "type": "Online launch kit",
        "note": "Download a launch kit with the live game link and instructions. The game needs its online service; server code is not included."
      },
      "saveNote": "Shared rounds and tallies come from the live service. Any local identity or best score belongs to this browser.",
      "networkNote": "This game needs PointCast’s live room, queue, or shared event service. The download is a launch kit, not an offline room server.",
      "landing": "/play/games/drum-duel/"
    },
    {
      "slug": "drum-vs",
      "name": "Drum VS",
      "family": "Drum arcade",
      "kicker": "SEND A LINK · FIRST TO FIFTY",
      "description": "Create a private one-on-one room for tug-of-war, a race, or a reaction duel.",
      "accent": "#f05a40",
      "controls": [
        "Tap the on-screen controls."
      ],
      "steps": [
        "Create a room and share its URL with your opponent.",
        "Choose a mode and tap to pull, race, or react."
      ],
      "playUrl": "/drum-vs",
      "players": "2 online players",
      "participation": [
        {
          "label": "Enter Drum VS",
          "url": "/drum-vs",
          "description": "Open the live room and follow its joining controls."
        },
        {
          "label": "Drum directory",
          "url": "/drum-directory",
          "description": "Find the connected room or display for your group."
        },
        {
          "label": "Share a private room",
          "url": "/drum-vs",
          "description": "Create a room first, then send its generated URL to one friend."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/drum-vs.zip",
        "type": "Online launch kit",
        "note": "Download a launch kit with the live game link and instructions. The game needs its online service; server code is not included."
      },
      "saveNote": "Shared rounds and tallies come from the live service. Any local identity or best score belongs to this browser.",
      "networkNote": "This game needs PointCast’s live room, queue, or shared event service. The download is a launch kit, not an offline room server.",
      "hero": "/images/og-drum-vs.png",
      "landing": "/play/games/drum-vs/"
    },
    {
      "slug": "hot-potato",
      "name": "Hot Potato",
      "family": "Drum arcade",
      "kicker": "STAY IN THE ROOM · WAIT FOR THE BELL",
      "description": "A potato passes automatically among present visitors. Stay in the room and see who is holding it when the bell rings: that visitor wins.",
      "accent": "#dba958",
      "controls": [
        "Open the page and stay present; the potato passes automatically."
      ],
      "steps": [
        "Open Hot Potato and stay on the page to join the visitor list.",
        "Watch the potato change holders automatically, then see who holds it when the bell rings."
      ],
      "playUrl": "/drum-potato",
      "players": "Shared online group",
      "participation": [
        {
          "label": "Join Hot Potato",
          "url": "/drum-potato",
          "description": "Stay on this live page while the potato passes and the bell chooses the current holder."
        },
        {
          "label": "Drum directory",
          "url": "/drum-directory",
          "description": "Explore the other shared Drum rooms."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/hot-potato.zip",
        "type": "Online launch kit",
        "note": "Download a launch kit with the live game link and instructions. The game needs its online service; server code is not included."
      },
      "saveNote": "The current round uses the live visitor list. Stay on the page; there is no saved campaign progress.",
      "networkNote": "The shared visitor list needs the live PointCast service. Passing and bell selection happen automatically in the browser; the launch kit opens the live page.",
      "landing": "/play/games/hot-potato/"
    },
    {
      "slug": "drum-bingo",
      "name": "Drum Bingo",
      "family": "Drum arcade",
      "kicker": "PLAY DRUMS · FILL YOUR CARD",
      "description": "Put the bingo cards on a shared screen and play connected sound rooms on other devices. Different live sound events mark the cards automatically; the first completed line wins.",
      "accent": "#7aa37b",
      "controls": [
        "Play connected Drum sound rooms on phones or separate browsers.",
        "On the bingo display, F toggles fullscreen, M hides page chrome, and 1/2/3 changes the palette."
      ],
      "steps": [
        "Open Drum Bingo on a TV or shared screen.",
        "Use Drum Room v3 and other connected sound rooms on separate devices to make different sound events.",
        "Watch the cards mark automatically as the room plays; the first five in a row, column, or diagonal wins."
      ],
      "playUrl": "/drum-tv-bingo",
      "players": "Shared online group",
      "participation": [
        {
          "label": "Open the bingo display",
          "url": "/drum-tv-bingo",
          "description": "Put the cards on the shared screen; the display marks them automatically."
        },
        {
          "label": "Play Drum Room",
          "url": "/drum-v3",
          "description": "Strike pads on another device to contribute drum events."
        },
        {
          "label": "Explore other sound rooms",
          "url": "/drum-directory",
          "description": "Play a variety of connected rooms to call different event categories."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/drum-bingo.zip",
        "type": "Online launch kit",
        "note": "Download a launch kit with the live game link and instructions. The game needs its online service; server code is not included."
      },
      "saveNote": "Cards and called events belong to the current display round. There is no saved campaign progress.",
      "networkNote": "Bingo needs PointCast’s live visitor and sound activity. A variety of connected room events fills different categories; drum taps alone call the drum categories.",
      "landing": "/play/games/drum-bingo/"
    },
    {
      "slug": "noun-gauntlet",
      "name": "Noun Gauntlet",
      "family": "Drum arcade",
      "kicker": "SIXTY SECONDS · A SHARED PODIUM",
      "description": "Put the race display on a shared screen, then play Drum Room on another device. Each live drum event moves its Noun up the track during a sixty-second race.",
      "accent": "#eb885c",
      "controls": [
        "On a phone or second browser, strike the pads in Drum Room v3.",
        "On the race display, F toggles fullscreen and M hides the page chrome."
      ],
      "steps": [
        "Open Noun Gauntlet on the TV or shared screen.",
        "On each player’s phone or second browser, open Drum Room v3 and strike its pads.",
        "Keep playing during the sixty-second race and watch the top-three podium between rounds."
      ],
      "playUrl": "/drum-tv-gauntlet",
      "players": "Shared online group",
      "participation": [
        {
          "label": "Open the race display",
          "url": "/drum-tv-gauntlet",
          "description": "Put this display on the TV; it follows the shared drum activity."
        },
        {
          "label": "Play the drum controller",
          "url": "/drum-v3",
          "description": "Open this on a phone or second browser and strike the pads to move your Noun."
        },
        {
          "label": "Drum directory",
          "url": "/drum-directory",
          "description": "Other connected sound rooms can also contribute live events."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/noun-gauntlet.zip",
        "type": "Online launch kit",
        "note": "Download a launch kit with the live game link and instructions. The game needs its online service; server code is not included."
      },
      "saveNote": "The live display tracks the current race and podium; there is no saved campaign progress.",
      "networkNote": "The display reads PointCast’s live visitor and sound activity. Players make sound events on a separate connected room page; the download is an online launch kit.",
      "hero": "/drum-directory/screenshots/drum-tv-gauntlet.jpg",
      "landing": "/play/games/noun-gauntlet/"
    },
    {
      "slug": "noun-roulette",
      "name": "Noun Roulette",
      "family": "Drum arcade",
      "kicker": "A NEW SPIN EVERY THIRTY SECONDS",
      "description": "Open a shared wheel of present Nouns and watch it choose a leader automatically every thirty seconds. The selected leader’s sound events make starbursts around the wheel.",
      "accent": "#b486c0",
      "controls": [
        "Open the wheel and stay present; each selection happens automatically.",
        "F toggles fullscreen and M hides the display’s page chrome."
      ],
      "steps": [
        "Open Noun Roulette and stay on the page so your Noun is present.",
        "Watch the automatic thirty-second spin choose the next room leader.",
        "Optionally play Drum Room on a second device and watch the chosen leader’s sound events light up the wheel."
      ],
      "playUrl": "/drum-tv-roulette",
      "players": "Shared online group",
      "participation": [
        {
          "label": "Join the wheel",
          "url": "/drum-tv-roulette",
          "description": "Open the live display and stay present for the next automatic selection."
        },
        {
          "label": "Play a sound room",
          "url": "/drum-v3",
          "description": "Use a phone or second browser to add sound events while the wheel celebrates its selected leader."
        },
        {
          "label": "Drum directory",
          "url": "/drum-directory",
          "description": "Find other connected sound rooms for the group."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/noun-roulette.zip",
        "type": "Online launch kit",
        "note": "Download a launch kit with the live game link and instructions. The game needs its online service; server code is not included."
      },
      "saveNote": "The current leader follows the live visitor list and repeating round. There is no saved campaign progress.",
      "networkNote": "The wheel needs PointCast’s live visitor list; sound-event celebrations use the shared sound service. This download opens the live display.",
      "landing": "/play/games/noun-roulette/"
    },
    {
      "slug": "virtual-pinata",
      "name": "Virtual Piñata",
      "family": "Drum arcade",
      "kicker": "SWING TOGETHER · MAKE IT BURST",
      "description": "Visitors add their swings to one shared piñata until it breaks open.",
      "accent": "#e5907b",
      "controls": [
        "Tap the on-screen controls."
      ],
      "steps": [
        "Enter the live piñata room.",
        "Tap or swing together until the shared piñata bursts."
      ],
      "playUrl": "/drum-pinata",
      "players": "Shared online group",
      "participation": [
        {
          "label": "Enter Virtual Piñata",
          "url": "/drum-pinata",
          "description": "Open the live room and follow its joining controls."
        },
        {
          "label": "Drum directory",
          "url": "/drum-directory",
          "description": "Find the connected room or display for your group."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/virtual-pinata.zip",
        "type": "Online launch kit",
        "note": "Download a launch kit with the live game link and instructions. The game needs its online service; server code is not included."
      },
      "saveNote": "Shared rounds and tallies come from the live service. Any local identity or best score belongs to this browser.",
      "networkNote": "This game needs PointCast’s live room, queue, or shared event service. The download is a launch kit, not an offline room server.",
      "hero": "/images/og-drum-pinata.svg",
      "landing": "/play/games/virtual-pinata/"
    },
    {
      "slug": "drum-league",
      "name": "Drum League",
      "family": "Drum arcade",
      "kicker": "TEAMS · SHARED TALLIES · LITTLE DUELS",
      "description": "Join a Drum team, contribute to its live tally, and try the league’s small competitive encounters.",
      "accent": "#d59c63",
      "controls": [
        "Tap the on-screen controls."
      ],
      "steps": [
        "Choose a team and enter the live league.",
        "Contribute taps or join the available duel and inspect team standings."
      ],
      "playUrl": "/drum-league",
      "players": "Online teams and duel partners",
      "participation": [
        {
          "label": "Enter Drum League",
          "url": "/drum-league",
          "description": "Open the live room and follow its joining controls."
        },
        {
          "label": "Drum directory",
          "url": "/drum-directory",
          "description": "Find the connected room or display for your group."
        }
      ],
      "editions": [
        {
          "name": "Classic league",
          "url": "/drum-league-classic"
        }
      ],
      "download": {
        "url": "/downloads/games/drum-league.zip",
        "type": "Online launch kit",
        "note": "Download a launch kit with the live game link and instructions. The game needs its online service; server code is not included."
      },
      "saveNote": "Shared rounds and tallies come from the live service. Any local identity or best score belongs to this browser.",
      "networkNote": "This game needs PointCast’s live room, queue, or shared event service. The download is a launch kit, not an offline room server.",
      "landing": "/play/games/drum-league/"
    },
    {
      "slug": "nouns-cola-crush",
      "name": "Nouns Cola Crush",
      "family": "Quick games",
      "kicker": "SWAP · MATCH · CASCADE",
      "description": "Match three, trigger cascades, and finish board goals before you run out of moves.",
      "accent": "#cf6251",
      "controls": [
        "Click or tap adjacent pieces to swap them."
      ],
      "steps": [
        "Start a board and inspect its goals and move limit.",
        "Make matches and cascades to finish the goals."
      ],
      "playUrl": "/nouns-cola-crush",
      "players": "1 player",
      "participation": [
        {
          "label": "Play a round",
          "url": "/nouns-cola-crush",
          "description": "Open the game and follow its on-screen instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/nouns-cola-crush.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Progress and best scores stay in this browser. Clearing browser storage removes them.",
      "networkNote": "The core game runs in browser files. Linked public pages need an internet connection.",
      "hero": "/images/nouns-cola-crush/super-graphics.png",
      "landing": "/play/games/nouns-cola-crush/"
    },
    {
      "slug": "keyboard-garden",
      "name": "Keyboard Garden",
      "family": "Keyboard games",
      "kicker": "PICK THE FLOWERS BEFORE THEY WILT",
      "description": "A solo keyboard arcade garden with three hearts, daily and free-play rounds, streaks, and a local best.",
      "accent": "#83ad73",
      "controls": [
        "Press the keys shown on the flowers."
      ],
      "steps": [
        "Choose a daily or free-play round.",
        "Pick glowing flowers before they wilt and keep your streak alive."
      ],
      "playUrl": "/keyboard-garden",
      "players": "1 player",
      "participation": [
        {
          "label": "Play a round",
          "url": "/keyboard-garden",
          "description": "Open the game and follow its on-screen instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/keyboard-garden.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Progress and best scores stay in this browser. Clearing browser storage removes them.",
      "networkNote": "The core game runs in browser files. Linked public pages need an internet connection.",
      "landing": "/play/games/keyboard-garden/"
    },
    {
      "slug": "bloom-rush",
      "name": "Bloom Rush",
      "family": "Keyboard games",
      "kicker": "FOUR SEATS · ONE GROWING SUN",
      "description": "Share five keys per seat and turn glowing cues into a fast, cooperative table garden.",
      "accent": "#e7b956",
      "controls": [
        "Each seat uses its five displayed keys.",
        "Use the room controls to create or join an online table."
      ],
      "steps": [
        "Choose seats around one keyboard, or create an online table.",
        "Press glowing keys together and grow the shared sun."
      ],
      "playUrl": "/keyboard-rush",
      "players": "1–4 on one keyboard or an online table",
      "participation": [
        {
          "label": "Play at the table",
          "url": "/keyboard-rush",
          "description": "Choose local seats or use the built-in online table controls."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/bloom-rush.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Progress and best scores stay in this browser. Clearing browser storage removes them.",
      "networkNote": "Local table play works in browser files. Remote tables need PointCast’s live signaling service and a shared room link.",
      "landing": "/play/games/bloom-rush/"
    },
    {
      "slug": "keyboard-quartet",
      "name": "Keyboard Quartet",
      "family": "Keyboard games",
      "kicker": "A PHRASE FOR FOUR FRIENDS",
      "description": "Four seats call and echo little phrases to grow a cooperative keyboard garden.",
      "accent": "#91a589",
      "controls": [
        "Each seat uses its five displayed keys."
      ],
      "steps": [
        "Choose local seats or create a shared online table.",
        "Listen to the call and echo its phrase together."
      ],
      "playUrl": "/keyboard-quartet",
      "players": "1–4 on one keyboard or an online table",
      "participation": [
        {
          "label": "Play a round",
          "url": "/keyboard-quartet",
          "description": "Open the game and follow its on-screen instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/keyboard-quartet.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Progress and best scores stay in this browser. Clearing browser storage removes them.",
      "networkNote": "The local quartet works in browser files. Remote table play needs PointCast’s live signaling service.",
      "landing": "/play/games/keyboard-quartet/"
    },
    {
      "slug": "keyboard-cascade",
      "name": "Keyboard Cascade",
      "family": "Keyboard games",
      "kicker": "SIX BY SIX · MATCH THREE",
      "description": "Play a scored six-by-six match-three board, with optional shared boards, passages, and chat.",
      "accent": "#aa83c0",
      "controls": [
        "Select and swap neighboring board pieces with the displayed controls."
      ],
      "steps": [
        "Start a solo board and look for a three-piece match.",
        "Trigger cascades and improve your browser-local best."
      ],
      "playUrl": "/keyboard/cascade",
      "players": "1 player",
      "participation": [
        {
          "label": "Play a round",
          "url": "/keyboard/cascade",
          "description": "Open the game and follow its on-screen instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/keyboard-cascade.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Solo board progress and best scores stay in this browser.",
      "networkNote": "The solo game runs locally. Shared boards, passages, and chat require PointCast’s keyboard-cascade service.",
      "landing": "/play/games/keyboard-cascade/"
    },
    {
      "slug": "melody-typist",
      "name": "Melody Typist",
      "family": "Keyboard games",
      "kicker": "WORDS PER MINUTE · LITTLE MELODIES",
      "description": "Type through musical practice prompts, watch your accuracy, and build a clean-word streak.",
      "accent": "#6e9e91",
      "controls": [
        "Type the displayed prompts on your keyboard."
      ],
      "steps": [
        "Choose a practice prompt and begin typing.",
        "Finish the round and compare accuracy, words per minute, and your clean-word streak."
      ],
      "playUrl": "/keyboard/typist",
      "players": "1 player",
      "participation": [
        {
          "label": "Play a round",
          "url": "/keyboard/typist",
          "description": "Open the game and follow its on-screen instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/melody-typist.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Progress and best scores stay in this browser. Clearing browser storage removes them.",
      "networkNote": "Local typing, scores, and audio work in browser files. The optional shared town-note counter requires the live signal service.",
      "landing": "/play/games/melody-typist/"
    },
    {
      "slug": "type-tide",
      "name": "Type Tide",
      "family": "Keyboard games",
      "kicker": "TEN LESSONS · A ONE-MINUTE VOYAGE",
      "description": "Learn ten gentle typing lessons, take a sixty-second voyage, and revisit the keys that need practice.",
      "accent": "#236572",
      "controls": [
        "Type the highlighted character, or use the touch keys.",
        "Backspace undoes a letter; Esc or Pause takes a break."
      ],
      "steps": [
        "Choose a lesson, one-minute voyage, or Tricky Keys.",
        "Follow the glowing key, finish your journey, and inspect your logbook."
      ],
      "playUrl": "/type-tide/",
      "players": "1 player",
      "participation": [
        {
          "label": "Play a round",
          "url": "/type-tide/",
          "description": "Open the game and follow its on-screen instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/type-tide.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Completed lessons, voyages, and missed-key history are saved in this browser.",
      "networkNote": "The typing adventure is a self-contained browser game; sound is generated locally.",
      "landing": "/play/games/type-tide/"
    },
    {
      "slug": "typing-bloom",
      "name": "Typing Bloom",
      "family": "Keyboard games",
      "kicker": "SIX GENTLE LESSONS",
      "description": "Follow the keys, find a musical typing rhythm, and grow a garden through six lessons.",
      "accent": "#88a978",
      "controls": [
        "Type the highlighted characters with your keyboard."
      ],
      "steps": [
        "Choose a lesson and follow its glowing key.",
        "Finish the prompt and try the next lesson as your garden grows."
      ],
      "playUrl": "/typing",
      "players": "1 player",
      "participation": [
        {
          "label": "Play a round",
          "url": "/typing",
          "description": "Open the game and follow its on-screen instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/typing-bloom.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Practice progress uses the game’s browser-local storage.",
      "networkNote": "The built-in typing lessons and musical feedback run in browser files.",
      "landing": "/play/games/typing-bloom/"
    },
    {
      "slug": "brick-choir",
      "name": "Brick Choir",
      "family": "Sports & party",
      "kicker": "EVERY KEY MAKES A NOTE",
      "description": "Turn the whole keyboard into a bouncing ball choir and play a sixty-second daily run.",
      "accent": "#b79567",
      "controls": [
        "Press any key to send a ball and play a note."
      ],
      "steps": [
        "Open the choir and try a few keyboard notes.",
        "Start the daily sixty-second run and keep the balls in play."
      ],
      "playUrl": "/brick-choir/choir",
      "players": "1 keyboard player",
      "participation": [
        {
          "label": "Play Brick Choir",
          "url": "/brick-choir/choir",
          "description": "Open the court or choir host."
        },
        {
          "label": "Party menu",
          "url": "/brick-choir/home",
          "description": "Use the shared TV menu, including the Sports Day sequence."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/brick-choir.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Round scores belong to the current browser or room. Keep any available receipt before closing.",
      "networkNote": "Local keyboard or simulated-opponent play uses browser files. Phone controllers and shared rooms need the live PointCast room and signaling service.",
      "hero": "/brick-choir/key3.webp",
      "landing": "/play/games/brick-choir/"
    },
    {
      "slug": "brick-choir-2600",
      "name": "Brick Choir 2600",
      "family": "Sports & party",
      "kicker": "CATCH THE FALLING NOTE",
      "description": "A pixel-console choir: move your keyboard paddle under a falling ball and keep it bouncing.",
      "accent": "#b79567",
      "controls": [
        "Press the key under the falling ball to place your paddle."
      ],
      "steps": [
        "Choose a difficulty and start the console round.",
        "Catch the falling ball with the matching keyboard position."
      ],
      "playUrl": "/brick-choir/2600",
      "players": "1 keyboard player",
      "participation": [
        {
          "label": "Play Brick Choir 2600",
          "url": "/brick-choir/2600",
          "description": "Open the court or choir host."
        },
        {
          "label": "Party menu",
          "url": "/brick-choir/home",
          "description": "Use the shared TV menu, including the Sports Day sequence."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/brick-choir-2600.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Round scores belong to the current browser or room. Keep any available receipt before closing.",
      "networkNote": "Local keyboard or simulated-opponent play uses browser files. Phone controllers and shared rooms need the live PointCast room and signaling service.",
      "hero": "/brick-choir/poster.webp",
      "landing": "/play/games/brick-choir-2600/"
    },
    {
      "slug": "brick-choir-quartet",
      "name": "Brick Choir Quartet",
      "family": "Sports & party",
      "kicker": "FOUR CORNERS · ONE CHOIR",
      "description": "Four keyboard seats share a bouncing choir, with a TV edition that lets phones become controllers.",
      "accent": "#b79567",
      "controls": [
        "Use the displayed keys for your corner.",
        "TV players scan the host’s QR code and use phone controls."
      ],
      "steps": [
        "Choose local keyboard seats, or open the TV host.",
        "Keep the shared choir bouncing and play a round together."
      ],
      "playUrl": "/brick-choir/quartet",
      "players": "Up to 4 local seats; TV supports up to 8 phones",
      "participation": [
        {
          "label": "Play Brick Choir Quartet",
          "url": "/brick-choir/quartet",
          "description": "Open the court or choir host."
        },
        {
          "label": "Party menu",
          "url": "/brick-choir/home",
          "description": "Use the shared TV menu, including the Sports Day sequence."
        },
        {
          "label": "Phone controller",
          "url": "/brick-choir/join",
          "description": "Open this on a phone and enter the room code shown by the TV host."
        }
      ],
      "editions": [
        {
          "name": "TV Quartet",
          "url": "/brick-choir/tv"
        }
      ],
      "download": {
        "url": "/downloads/games/brick-choir-quartet.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Round scores belong to the current browser or room. Keep any available receipt before closing.",
      "networkNote": "Local keyboard or simulated-opponent play uses browser files. Phone controllers and shared rooms need the live PointCast room and signaling service.",
      "hero": "/brick-choir/key4.webp",
      "landing": "/play/games/brick-choir-quartet/"
    },
    {
      "slug": "pickle-park",
      "name": "Pickle Park",
      "family": "Sports & party",
      "kicker": "MAKE A BUDDY · SWING A PHONE",
      "description": "A living-room pickleball court for phone players and house bots, with a small buddy to carry onto court.",
      "accent": "#b79567",
      "controls": [
        "Use the host’s displayed keyboard controls or join on a phone.",
        "Phone players swing to hit."
      ],
      "steps": [
        "Open the host court and scan its QR code to join.",
        "Make a buddy, start the match, and rally with friends or house bots."
      ],
      "playUrl": "/brick-choir/park",
      "players": "1–4 players; bots fill the court",
      "participation": [
        {
          "label": "Play Pickle Park",
          "url": "/brick-choir/park",
          "description": "Open the court or choir host."
        },
        {
          "label": "Party menu",
          "url": "/brick-choir/home",
          "description": "Use the shared TV menu, including the Sports Day sequence."
        },
        {
          "label": "Join on a phone",
          "url": "/brick-choir/park-join",
          "description": "Enter the room code or scan the QR code displayed by the live host."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/pickle-park.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Round scores belong to the current browser or room. Keep any available receipt before closing.",
      "networkNote": "Local keyboard or simulated-opponent play uses browser files. Phone controllers and shared rooms need the live PointCast room and signaling service.",
      "hero": "/brick-choir/park.webp",
      "landing": "/play/games/pickle-park/"
    },
    {
      "slug": "rally",
      "name": "Rally",
      "family": "Sports & party",
      "kicker": "SWING · TILT · FLICK",
      "description": "A TV pickleball match where phone swings hit, tilts aim, and small flicks make dinks.",
      "accent": "#b79567",
      "controls": [
        "Phone: swing to hit, tilt to aim, and flick to dink.",
        "The host also shows keyboard fallback controls."
      ],
      "steps": [
        "Open Rally on the shared screen and scan its QR code.",
        "Start a doubles match with friends or house bots."
      ],
      "playUrl": "/brick-choir/rally",
      "players": "1–4 players; bots fill the court",
      "participation": [
        {
          "label": "Play Rally",
          "url": "/brick-choir/rally",
          "description": "Open the court or choir host."
        },
        {
          "label": "Party menu",
          "url": "/brick-choir/home",
          "description": "Use the shared TV menu, including the Sports Day sequence."
        },
        {
          "label": "Join on a phone",
          "url": "/brick-choir/rally-join",
          "description": "Enter the room code or scan the QR code displayed by the live host."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/rally.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Round scores belong to the current browser or room. Keep any available receipt before closing.",
      "networkNote": "Local keyboard or simulated-opponent play uses browser files. Phone controllers and shared rooms need the live PointCast room and signaling service.",
      "hero": "/brick-choir/rally.webp",
      "landing": "/play/games/rally/"
    },
    {
      "slug": "lanes",
      "name": "Lanes",
      "family": "Sports & party",
      "kicker": "A LIVING-ROOM BOWLING NIGHT",
      "description": "Take turns bowling with a phone swing, aim, and hook, with house bots and optional bumpers.",
      "accent": "#b79567",
      "controls": [
        "Phone: swing to bowl, tilt to aim, and twist for hook.",
        "Use the host’s keyboard fallback controls when playing locally."
      ],
      "steps": [
        "Open the lanes and scan the host’s QR code.",
        "Choose seats and bumpers, then take turns bowling."
      ],
      "playUrl": "/brick-choir/lanes",
      "players": "1–8 turn-based players; bots fill seats",
      "participation": [
        {
          "label": "Play Lanes",
          "url": "/brick-choir/lanes",
          "description": "Open the court or choir host."
        },
        {
          "label": "Party menu",
          "url": "/brick-choir/home",
          "description": "Use the shared TV menu, including the Sports Day sequence."
        },
        {
          "label": "Join on a phone",
          "url": "/brick-choir/lanes-join",
          "description": "Enter the room code or scan the QR code displayed by the live host."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/lanes.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Round scores belong to the current browser or room. Keep any available receipt before closing.",
      "networkNote": "Local keyboard or simulated-opponent play uses browser files. Phone controllers and shared rooms need the live PointCast room and signaling service.",
      "hero": "/brick-choir/lanes.webp",
      "landing": "/play/games/lanes/"
    },
    {
      "slug": "third-shot",
      "name": "Third Shot",
      "family": "Sports & party",
      "kicker": "ONE FINGER · A SMARTER DOUBLES MATCH",
      "description": "Play portrait pickleball with an AI partner and opponents who bring different doubles strategies.",
      "accent": "#b79567",
      "controls": [
        "Use the on-screen one-finger court controls."
      ],
      "steps": [
        "Start a portrait doubles match and meet your AI partner.",
        "Choose shots against bangers, dinkers, or lobbers and finish the match."
      ],
      "playUrl": "/brick-choir/third-shot",
      "players": "1 phone player with simulated partners",
      "participation": [
        {
          "label": "Play Third Shot",
          "url": "/brick-choir/third-shot",
          "description": "Open the court or choir host."
        },
        {
          "label": "Party menu",
          "url": "/brick-choir/home",
          "description": "Use the shared TV menu, including the Sports Day sequence."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/third-shot.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Round scores belong to the current browser or room. Keep any available receipt before closing.",
      "networkNote": "Local keyboard or simulated-opponent play uses browser files. Phone controllers and shared rooms need the live PointCast room and signaling service.",
      "hero": "/brick-choir/third.webp",
      "landing": "/play/games/third-shot/"
    },
    {
      "slug": "starjam",
      "name": "NOUNS:STARJAM",
      "family": "Rhythm & listening",
      "kicker": "FOUR WORLDS · A LITTLE PARADE",
      "description": "Pop Nouns in Noun Drip or hit three-lane notes in Rhythm, traveling through four worlds and building a Heartfire Parade.",
      "accent": "#ec8872",
      "controls": [
        "Noun Drip: click or tap appearing Nouns.",
        "Rhythm: use D, F, J or 1, 2, 3, or tap lanes."
      ],
      "steps": [
        "Choose Noun Drip or Rhythm and pick a world.",
        "Play the thirty-five-second round and meet the parade crew."
      ],
      "playUrl": "/co-games/flow",
      "players": "1 player",
      "participation": [
        {
          "label": "Start STARJAM",
          "url": "/co-games/flow",
          "description": "Choose a mode and world in the arcade."
        }
      ],
      "editions": [
        {
          "name": "Noun Drip · Heartfire Parade",
          "url": "/co-games/flow"
        },
        {
          "name": "Rhythm mode",
          "url": "/co-games/flow"
        }
      ],
      "download": {
        "url": "/downloads/games/starjam.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Round state is local; this game does not publish a competitive public score.",
      "networkNote": "Built-in worlds, rounds, and bundled audio use browser files. No live AI inference is required.",
      "hero": "/images/co-games/worlds/heartfire-parade.webp",
      "landing": "/play/games/starjam/"
    },
    {
      "slug": "co-games",
      "name": "Co-games — Two Against the Rift",
      "family": "Rhythm & listening",
      "kicker": "FOUR ROUNDS · A PRACTICE BUDDY",
      "description": "Choose human spells and team up with a built-in practice buddy to survive a four-round rift battle.",
      "accent": "#9a7fac",
      "controls": [
        "Choose Ember, Root, or Focus; select buddy support actions."
      ],
      "steps": [
        "Start with the built-in practice buddy.",
        "Choose spells through four rounds and protect your shared health."
      ],
      "playUrl": "/co-games",
      "players": "1 human with a practice buddy or paired AI",
      "participation": [
        {
          "label": "Play the practice battle",
          "url": "/co-games",
          "description": "Try the built-in buddy immediately."
        },
        {
          "label": "Pair your AI",
          "url": "/me#my-ai",
          "description": "Use the account’s supported companion setup for the online AI mode."
        },
        {
          "label": "Game protocol",
          "url": "/co-games.json",
          "description": "Read the public move and participation format."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/co-games.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "The practice battle resets on reload; it is separate from account and companion state.",
      "networkNote": "Built-in practice runs locally. Paired AI requires an authenticated account, a supported awake companion, and PointCast’s live AI runtime service.",
      "hero": "/images/co-games/rift-garden.webp",
      "landing": "/play/games/co-games/"
    },
    {
      "slug": "bellflower",
      "name": "Bellflower",
      "family": "Rhythm & listening",
      "kicker": "TEN LISTENING VISITS",
      "description": "Ring a small bell, visit ten blooms, and complete a quiet listening garden with a local receipt.",
      "accent": "#a79b67",
      "controls": [
        "Click or tap the bell and the visit controls."
      ],
      "steps": [
        "Enter the first bloom and ring its bell.",
        "Visit all ten stages and keep the final garden receipt."
      ],
      "playUrl": "/bellflower",
      "players": "1 player",
      "participation": [
        {
          "label": "Visit the blooms",
          "url": "/bellflower",
          "description": "Start the first listening visit."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/bellflower.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Visit progress and the listening receipt are stored in this browser.",
      "networkNote": "The listening sequence and synthesized bell run locally. Some Noun portraits require noun.pics.",
      "hero": "/images/shrines/block-shrine-bg.png",
      "landing": "/play/games/bellflower/"
    },
    {
      "slug": "bell-choir-follow-the-light",
      "name": "Bell Choir — Follow the Light",
      "family": "Rhythm & listening",
      "kicker": "RING THE GLOWING BELL",
      "description": "Choose Follow the Light and ring the lit bell to build a local score inside a shared musical room.",
      "accent": "#b8a57a",
      "controls": [
        "Enable Follow the Light, then click or tap the glowing bell."
      ],
      "steps": [
        "Open Bell Choir and choose Follow the Light.",
        "Ring lit bells and invite others with the room link if you want a shared choir."
      ],
      "playUrl": "/bell-choir",
      "players": "Solo score; optional online choir",
      "participation": [
        {
          "label": "Follow the light",
          "url": "/bell-choir",
          "description": "Choose Follow the Light inside the bell room."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/bell-choir-follow-the-light.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Follow the Light scores and bests are browser-local.",
      "networkNote": "The local score game works in browser files. Room hits require PointCast’s live service; each browser’s glowing target is local, not a synchronized shared target.",
      "hero": "/images/og-bell-choir.png",
      "landing": "/play/games/bell-choir-follow-the-light/"
    },
    {
      "slug": "the-band",
      "name": "The Band",
      "family": "Rhythm & listening",
      "kicker": "TUNE THE DIAL · COPY THE FOX",
      "description": "Explore a shortwave dial, find the daily Morse fox, and collect seasonal QSL cards through a shared listening room.",
      "accent": "#b89462",
      "controls": [
        "Tune the dial and use the copy, listen, and signal controls."
      ],
      "steps": [
        "Find the daily fox signal on the dial.",
        "Copy its Morse message and collect a QSL card."
      ],
      "playUrl": "/band",
      "players": "Solo hunt in a shared online listening room",
      "participation": [
        {
          "label": "Join the band",
          "url": "/band",
          "description": "Open the live shortwave hunt and listening room."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/the-band.zip",
        "type": "Online launch kit",
        "note": "Download a launch kit with the live game link and instructions. The game needs its online service; server code is not included."
      },
      "saveNote": "QSL and hunt progress use this browser; shared presence comes from the live room.",
      "networkNote": "The shared dial and visitor presence need PointCast’s live room service. The launch kit opens the online experience.",
      "hero": "/images/band/hero.jpg",
      "landing": "/play/games/the-band/"
    },
    {
      "slug": "yeeplayer",
      "name": "YeePlayer",
      "family": "Rhythm & listening",
      "kicker": "WATCH · LISTEN · TAP THE MARKS",
      "description": "Choose a published beat-mapped video and play its rhythm overlay, keeping a local score alongside the listening session.",
      "accent": "#b57c91",
      "controls": [
        "Use the player’s tap or keyboard rhythm controls."
      ],
      "steps": [
        "Choose a beat-mapped block from the player shelf.",
        "Start playback and follow the marked beats."
      ],
      "playUrl": "/yee/",
      "players": "1 player",
      "participation": [
        {
          "label": "Choose a beat-mapped block",
          "url": "/yee/",
          "description": "Open the player shelf and select a playable edition."
        }
      ],
      "editions": [
        {
          "name": "Chakra tune-up · single tones",
          "url": "/yee/0236"
        },
        {
          "name": "Alan Watts · Awakening the Mind",
          "url": "/yee/0262"
        },
        {
          "name": "Guns N’ Roses · November Rain",
          "url": "/yee/0263"
        },
        {
          "name": "Prince · Purple Rain",
          "url": "/yee/0264"
        },
        {
          "name": "Post Malone · Circles, Rome · block 0393",
          "url": "/yee/0393"
        },
        {
          "name": "Post Malone · Circles, Rome · block 0433",
          "url": "/yee/0433"
        }
      ],
      "download": {
        "url": "/downloads/games/yeeplayer.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Rhythm scores and bests stay in this browser.",
      "networkNote": "The overlay can use its local clock. YouTube music and videos require a connection and are not bundled or downloaded.",
      "hero": "/images/og/yee.png",
      "landing": "/play/games/yeeplayer/"
    },
    {
      "slug": "saturday-kingdom-signal-run",
      "name": "Saturday Kingdom — Signal Run",
      "family": "Rhythm & listening",
      "kicker": "KEEP THE SIGNAL CLEAR",
      "description": "An approximately three-minute gesture game through a sourced 2024 Michigan–Ohio State play sequence. Your score measures signal fidelity while the recorded result stays fixed.",
      "accent": "#b99d68",
      "controls": [
        "Swipe, hold and release, or double tap the gesture pad.",
        "Use the labeled keyboard or on-screen action buttons."
      ],
      "steps": [
        "Start the archival signal run and read each gesture cue.",
        "Keep the signal clear through the sequence and inspect your fidelity score."
      ],
      "playUrl": "/haptic-dreams/play",
      "players": "1 player",
      "participation": [
        {
          "label": "Play a round",
          "url": "/haptic-dreams/play",
          "description": "Open the game and follow its on-screen instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/saturday-kingdom-signal-run.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Best signal fidelity is stored in this browser.",
      "networkNote": "The gesture game runs locally. Archive links need a connection; optional hardware haptics require the supported device setup and do not change the historic result.",
      "hero": "/images/pointcast-haptic-dreams/social-card.png",
      "landing": "/play/games/saturday-kingdom-signal-run/"
    },
    {
      "slug": "fan-clique",
      "name": "Fan Clique",
      "family": "Social games",
      "kicker": "CHOOSE A TEAM · JOIN THE STANDINGS",
      "description": "A casual fan game: pick your favorite team and add one browser-counted vote to the live standings.",
      "accent": "#c58054",
      "controls": [
        "Select a team and use its vote control."
      ],
      "steps": [
        "Choose the team you want to support.",
        "Cast the browser-counted vote and inspect live standings."
      ],
      "playUrl": "/25/fan-clique",
      "players": "Shared online community",
      "participation": [
        {
          "label": "Choose your team",
          "url": "/25/fan-clique",
          "description": "Vote through the live page and share its team invitation."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/fan-clique.zip",
        "type": "Online launch kit",
        "note": "Download a launch kit with the live game link and instructions. The game needs its online service; server code is not included."
      },
      "saveNote": "The browser tracks whether it has voted. Counts do not prove one unique human per vote.",
      "networkNote": "Voting and standings depend on PointCast’s live Fan Clique API.",
      "hero": "/images/pointcast-college-football-magazine/social-card.png",
      "landing": "/play/games/fan-clique/"
    },
    {
      "slug": "pointcast-relay",
      "name": "PointCast Relay",
      "family": "Quick games",
      "kicker": "ROUTE THE SIGNAL · BEAT THE CLOCK",
      "description": "Route a deck of PointCast signals in a timed scoring round, using a built-in deck when live blocks are unavailable.",
      "accent": "#ba7355",
      "controls": [
        "Use the displayed routing controls or keyboard shortcuts."
      ],
      "steps": [
        "Choose a round and read the routing cues.",
        "Route signals before time runs out and inspect your run summary."
      ],
      "playUrl": "/collabs/relay/",
      "players": "1 player",
      "participation": [
        {
          "label": "Play Relay",
          "url": "/collabs/relay/",
          "description": "Start the routing game with live or built-in blocks."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/pointcast-relay.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Best scores and the last run summary stay in this browser.",
      "networkNote": "A local deck allows practice without the live block feed. Fresh PointCast blocks and shared presence require the canonical online services.",
      "hero": "/images/relay-super-map.png",
      "landing": "/play/games/pointcast-relay/"
    },
    {
      "slug": "pointcast-arena",
      "name": "PointCast Arena",
      "family": "Nouns & strategy",
      "kicker": "DIRECT THE BRACKET · KEEP A RECEIPT",
      "description": "Direct scored bracket bouts and tactics using PointCast blocks or a local fallback deck, then copy the bout receipt.",
      "accent": "#907bad",
      "controls": [
        "Choose a bracket and use the on-screen tactics and bout controls."
      ],
      "steps": [
        "Choose the bracket and prepare your tactics.",
        "Run scored bouts and copy their receipts."
      ],
      "playUrl": "/collabs/arena/",
      "players": "Solo bracket director",
      "participation": [
        {
          "label": "Play a round",
          "url": "/collabs/arena/",
          "description": "Open the game and follow its on-screen instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/pointcast-arena.zip",
        "type": "Local game pack",
        "note": "Browser files for a local web server; this is not a native app or a guarantee that every connected feature works offline."
      },
      "saveNote": "Keep bout receipts using the game’s copy controls; local identity belongs to this browser.",
      "networkNote": "The built-in deck supports local bouts. Fresh PointCast blocks and live collaboration features require a connection.",
      "landing": "/play/games/pointcast-arena/"
    },
    {
      "slug": "arcade-60",
      "name": "Arcade 60",
      "family": "Quick games",
      "kicker": "THE FULL FIFTY-GAME COLLECTION",
      "description": "Choose from fifty short published cabinet games, covering reaction, memory, timing, numbers, color, words, and paths. Each game also has its own PointCast landing page.",
      "accent": "#dc9765",
      "controls": [
        "Use each mini-game’s displayed tap, key, or puzzle controls."
      ],
      "steps": [
        "Open the live games shelf and choose a numbered cabinet.",
        "Read its short rule, play a round, and choose another cabinet."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site",
      "players": "1 player",
      "participation": [
        {
          "label": "Open the full arcade",
          "url": "https://arcade-60.mhoydich.chatgpt.site",
          "description": "Choose any published game on the satellite."
        },
        {
          "label": "PointCast cabinet door",
          "url": "/arcade-60",
          "description": "Read the local introduction and featured game list."
        }
      ],
      "editions": [
        {
          "name": "Beach Ball Panic",
          "url": "/play/games/arcade60-tap-1/"
        },
        {
          "name": "Pigeon at LAX",
          "url": "/play/games/arcade60-tap-2/"
        },
        {
          "name": "Pickle Pop",
          "url": "/play/games/arcade60-tap-3/"
        },
        {
          "name": "Taco Bell",
          "url": "/play/games/arcade60-tap-4/"
        },
        {
          "name": "Fog Horn",
          "url": "/play/games/arcade60-tap-5/"
        },
        {
          "name": "Five Windows",
          "url": "/play/games/arcade60-memory-1/"
        },
        {
          "name": "License Plate Dream",
          "url": "/play/games/arcade60-memory-2/"
        },
        {
          "name": "Court Sequence",
          "url": "/play/games/arcade60-memory-3/"
        },
        {
          "name": "Bodega Receipt",
          "url": "/play/games/arcade60-memory-4/"
        },
        {
          "name": "Signal Memory",
          "url": "/play/games/arcade60-memory-5/"
        },
        {
          "name": "Pacific Second",
          "url": "/play/games/arcade60-stop-1/"
        },
        {
          "name": "Meter Reader",
          "url": "/play/games/arcade60-stop-2/"
        },
        {
          "name": "Sunset Stop",
          "url": "/play/games/arcade60-stop-3/"
        },
        {
          "name": "Gate 42",
          "url": "/play/games/arcade60-stop-4/"
        },
        {
          "name": "Coffee Drip",
          "url": "/play/games/arcade60-stop-5/"
        },
        {
          "name": "Marine Layer",
          "url": "/play/games/arcade60-slider-1/"
        },
        {
          "name": "Radio Tuner",
          "url": "/play/games/arcade60-slider-2/"
        },
        {
          "name": "Perfect Toast",
          "url": "/play/games/arcade60-slider-3/"
        },
        {
          "name": "Palm Alignment",
          "url": "/play/games/arcade60-slider-4/"
        },
        {
          "name": "Parking Line",
          "url": "/play/games/arcade60-slider-5/"
        },
        {
          "name": "Odd Umbrella",
          "url": "/play/games/arcade60-choice-1/"
        },
        {
          "name": "Wrong Noun",
          "url": "/play/games/arcade60-choice-2/"
        },
        {
          "name": "One Warm Tile",
          "url": "/play/games/arcade60-choice-3/"
        },
        {
          "name": "Different Cloud",
          "url": "/play/games/arcade60-choice-4/"
        },
        {
          "name": "Strange Sock",
          "url": "/play/games/arcade60-choice-5/"
        },
        {
          "name": "Tap the Pier",
          "url": "/play/games/arcade60-count-1/"
        },
        {
          "name": "Drum Fingers",
          "url": "/play/games/arcade60-count-2/"
        },
        {
          "name": "Elevator Button",
          "url": "/play/games/arcade60-count-3/"
        },
        {
          "name": "Rain on Glass",
          "url": "/play/games/arcade60-count-4/"
        },
        {
          "name": "Popcorn Shift",
          "url": "/play/games/arcade60-count-5/"
        },
        {
          "name": "Secret Address",
          "url": "/play/games/arcade60-guess-1/"
        },
        {
          "name": "Noun Number",
          "url": "/play/games/arcade60-guess-2/"
        },
        {
          "name": "Mystery Temperature",
          "url": "/play/games/arcade60-guess-3/"
        },
        {
          "name": "Hidden Score",
          "url": "/play/games/arcade60-guess-4/"
        },
        {
          "name": "Bus Arrival",
          "url": "/play/games/arcade60-guess-5/"
        },
        {
          "name": "Ink Argument",
          "url": "/play/games/arcade60-color-1/"
        },
        {
          "name": "Wrong Name",
          "url": "/play/games/arcade60-color-2/"
        },
        {
          "name": "Riso Reflex",
          "url": "/play/games/arcade60-color-3/"
        },
        {
          "name": "Traffic Light",
          "url": "/play/games/arcade60-color-4/"
        },
        {
          "name": "Paint Store",
          "url": "/play/games/arcade60-color-5/"
        },
        {
          "name": "Letter Beach",
          "url": "/play/games/arcade60-word-1/"
        },
        {
          "name": "Arcade Scramble",
          "url": "/play/games/arcade60-word-2/"
        },
        {
          "name": "Pocket Anagram",
          "url": "/play/games/arcade60-word-3/"
        },
        {
          "name": "Signal Decoder",
          "url": "/play/games/arcade60-word-4/"
        },
        {
          "name": "Fridge Magnet",
          "url": "/play/games/arcade60-word-5/"
        },
        {
          "name": "Tiny Maze",
          "url": "/play/games/arcade60-path-1/"
        },
        {
          "name": "Crosswalk Code",
          "url": "/play/games/arcade60-path-2/"
        },
        {
          "name": "Airport Wayfinding",
          "url": "/play/games/arcade60-path-3/"
        },
        {
          "name": "Night Walk",
          "url": "/play/games/arcade60-path-4/"
        },
        {
          "name": "Treasure Route",
          "url": "/play/games/arcade60-path-5/"
        }
      ],
      "download": {
        "url": "/downloads/games/arcade-60.zip",
        "type": "Online launch kit",
        "note": "Download a launch kit with the live game link and instructions. The game needs its online service; server code is not included."
      },
      "saveNote": "Progress belongs to the satellite game and its browser storage.",
      "networkNote": "The playable arcade is hosted on an external site. Individual games are selected from its shelf; there are no published individual game deep URLs. The separate mint presses are wallet-dependent tools, outside this game catalog.",
      "landing": "/play/games/arcade-60/"
    },
    {
      "slug": "paddle-fund",
      "name": "Paddle Fund",
      "family": "Sports & party",
      "kicker": "A PLAYABLE SAVINGS-CIRCLE CONCEPT",
      "description": "Try a pretend-money pickleball savings-circle simulation: a weekly ladder and rotation show how a group allocation could work.",
      "accent": "#739a6a",
      "controls": [
        "Use the simulation’s player, week, and ladder controls."
      ],
      "steps": [
        "Open the simulation and inspect its group and weekly rotation.",
        "Play through the ladder allocation and compare the resulting receipts."
      ],
      "playUrl": "https://tez-rally.pages.dev/paddle-fund/",
      "players": "Solo simulation of a group",
      "participation": [
        {
          "label": "Try the simulation",
          "url": "https://tez-rally.pages.dev/paddle-fund/",
          "description": "Open the published pretend-money concept."
        },
        {
          "label": "PointCast introduction",
          "url": "/paddle-fund",
          "description": "Read the participation boundary and source notes."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/paddle-fund.zip",
        "type": "Online launch kit",
        "note": "Download a launch kit with the live game link and instructions. The game needs its online service; server code is not included."
      },
      "saveNote": "Simulation state belongs to its hosted browser experience.",
      "networkNote": "This is a hosted pretend-money concept. The launch kit does not initiate payments, deposits, wallet signatures, or a real savings group.",
      "landing": "/play/games/paddle-fund/"
    },
    {
      "slug": "arcade60-tap-1",
      "name": "Beach Ball Panic",
      "family": "Arcade 60",
      "kicker": "CABINET 01 / 50 · MOVING TARGETS",
      "description": "Cabinet 01 is a quick reaction round: hit twelve moving targets and see how fast you can finish.",
      "accent": "#cf917e",
      "controls": [
        "Click or tap the moving target."
      ],
      "steps": [
        "Open the arcade and choose cabinet 01 — Beach Ball Panic.",
        "Click or tap each moving target until you reach twelve hits.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 01",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 01 — Beach Ball Panic."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-tap-1.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 01: Beach Ball Panic. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-tap-1/"
    },
    {
      "slug": "arcade60-tap-2",
      "name": "Pigeon at LAX",
      "family": "Arcade 60",
      "kicker": "CABINET 02 / 50 · MOVING TARGETS",
      "description": "Cabinet 02 is a quick reaction round: hit twelve moving targets and see how fast you can finish.",
      "accent": "#7a7fd7",
      "controls": [
        "Click or tap the moving target."
      ],
      "steps": [
        "Open the arcade and choose cabinet 02 — Pigeon at LAX.",
        "Click or tap each moving target until you reach twelve hits.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 02",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 02 — Pigeon at LAX."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-tap-2.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 02: Pigeon at LAX. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-tap-2/"
    },
    {
      "slug": "arcade60-tap-3",
      "name": "Pickle Pop",
      "family": "Arcade 60",
      "kicker": "CABINET 03 / 50 · MOVING TARGETS",
      "description": "Cabinet 03 is a quick reaction round: hit twelve moving targets and see how fast you can finish.",
      "accent": "#9ae075",
      "controls": [
        "Click or tap the moving target."
      ],
      "steps": [
        "Open the arcade and choose cabinet 03 — Pickle Pop.",
        "Click or tap each moving target until you reach twelve hits.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 03",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 03 — Pickle Pop."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-tap-3.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 03: Pickle Pop. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-tap-3/"
    },
    {
      "slug": "arcade60-tap-4",
      "name": "Taco Bell",
      "family": "Arcade 60",
      "kicker": "CABINET 04 / 50 · MOVING TARGETS",
      "description": "Cabinet 04 is a quick reaction round: hit twelve moving targets and see how fast you can finish.",
      "accent": "#e98ec8",
      "controls": [
        "Click or tap the moving target."
      ],
      "steps": [
        "Open the arcade and choose cabinet 04 — Taco Bell.",
        "Click or tap each moving target until you reach twelve hits.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 04",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 04 — Taco Bell."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-tap-4.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 04: Taco Bell. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-tap-4/"
    },
    {
      "slug": "arcade60-tap-5",
      "name": "Fog Horn",
      "family": "Arcade 60",
      "kicker": "CABINET 05 / 50 · MOVING TARGETS",
      "description": "Cabinet 05 is a quick reaction round: hit twelve moving targets and see how fast you can finish.",
      "accent": "#75c8cf",
      "controls": [
        "Click or tap the moving target."
      ],
      "steps": [
        "Open the arcade and choose cabinet 05 — Fog Horn.",
        "Click or tap each moving target until you reach twelve hits.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 05",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 05 — Fog Horn."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-tap-5.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 05: Fog Horn. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-tap-5/"
    },
    {
      "slug": "arcade60-memory-1",
      "name": "Five Windows",
      "family": "Arcade 60",
      "kicker": "CABINET 06 / 50 · FIVE-DIGIT MEMORY",
      "description": "Cabinet 06 tests a five-digit memory: study the signal, hide it, and type the number back.",
      "accent": "#d7c170",
      "controls": [
        "Study the five-digit signal, select Hide signal, then type it back."
      ],
      "steps": [
        "Open the arcade and choose cabinet 06 — Five Windows.",
        "Study the five-digit signal, select Hide signal, and type it back.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 06",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 06 — Five Windows."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-memory-1.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 06: Five Windows. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-memory-1/"
    },
    {
      "slug": "arcade60-memory-2",
      "name": "License Plate Dream",
      "family": "Arcade 60",
      "kicker": "CABINET 07 / 50 · FIVE-DIGIT MEMORY",
      "description": "Cabinet 07 tests a five-digit memory: study the signal, hide it, and type the number back.",
      "accent": "#b489e0",
      "controls": [
        "Study the five-digit signal, select Hide signal, then type it back."
      ],
      "steps": [
        "Open the arcade and choose cabinet 07 — License Plate Dream.",
        "Study the five-digit signal, select Hide signal, and type it back.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 07",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 07 — License Plate Dream."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-memory-2.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 07: License Plate Dream. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-memory-2/"
    },
    {
      "slug": "arcade60-memory-3",
      "name": "Court Sequence",
      "family": "Arcade 60",
      "kicker": "CABINET 08 / 50 · FIVE-DIGIT MEMORY",
      "description": "Cabinet 08 tests a five-digit memory: study the signal, hide it, and type the number back.",
      "accent": "#84e998",
      "controls": [
        "Study the five-digit signal, select Hide signal, then type it back."
      ],
      "steps": [
        "Open the arcade and choose cabinet 08 — Court Sequence.",
        "Study the five-digit signal, select Hide signal, and type it back.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 08",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 08 — Court Sequence."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-memory-3.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 08: Court Sequence. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-memory-3/"
    },
    {
      "slug": "arcade60-memory-4",
      "name": "Bodega Receipt",
      "family": "Arcade 60",
      "kicker": "CABINET 09 / 50 · FIVE-DIGIT MEMORY",
      "description": "Cabinet 09 tests a five-digit memory: study the signal, hide it, and type the number back.",
      "accent": "#cf6b75",
      "controls": [
        "Study the five-digit signal, select Hide signal, then type it back."
      ],
      "steps": [
        "Open the arcade and choose cabinet 09 — Bodega Receipt.",
        "Study the five-digit signal, select Hide signal, and type it back.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 09",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 09 — Bodega Receipt."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-memory-4.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 09: Bodega Receipt. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-memory-4/"
    },
    {
      "slug": "arcade60-memory-5",
      "name": "Signal Memory",
      "family": "Arcade 60",
      "kicker": "CABINET 10 / 50 · FIVE-DIGIT MEMORY",
      "description": "Cabinet 10 tests a five-digit memory: study the signal, hide it, and type the number back.",
      "accent": "#83a4d7",
      "controls": [
        "Study the five-digit signal, select Hide signal, then type it back."
      ],
      "steps": [
        "Open the arcade and choose cabinet 10 — Signal Memory.",
        "Study the five-digit signal, select Hide signal, and type it back.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 10",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 10 — Signal Memory."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-memory-5.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 10: Signal Memory. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-memory-5/"
    },
    {
      "slug": "arcade60-stop-1",
      "name": "Pacific Second",
      "family": "Arcade 60",
      "kicker": "CABINET 11 / 50 · STOP THE CLOCK",
      "description": "Start the clock and stop as close as you can to 2.5 seconds. Cabinet 11 reports how far your timing landed from the target.",
      "accent": "#c1e07f",
      "controls": [
        "Select START, then STOP near the displayed target time."
      ],
      "steps": [
        "Open the arcade and choose cabinet 11 — Pacific Second.",
        "Select START, then STOP as close as you can to 2.5 seconds.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 11",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 11 — Pacific Second."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-stop-1.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 11: Pacific Second. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-stop-1/"
    },
    {
      "slug": "arcade60-stop-2",
      "name": "Meter Reader",
      "family": "Arcade 60",
      "kicker": "CABINET 12 / 50 · STOP THE CLOCK",
      "description": "Start the clock and stop as close as you can to 3 seconds. Cabinet 12 reports how far your timing landed from the target.",
      "accent": "#e979e6",
      "controls": [
        "Select START, then STOP near the displayed target time."
      ],
      "steps": [
        "Open the arcade and choose cabinet 12 — Meter Reader.",
        "Select START, then STOP as close as you can to 3 seconds.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 12",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 12 — Meter Reader."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-stop-2.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 12: Meter Reader. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-stop-2/"
    },
    {
      "slug": "arcade60-stop-3",
      "name": "Sunset Stop",
      "family": "Arcade 60",
      "kicker": "CABINET 13 / 50 · STOP THE CLOCK",
      "description": "Start the clock and stop as close as you can to 3.5 seconds. Cabinet 13 reports how far your timing landed from the target.",
      "accent": "#7ecfb9",
      "controls": [
        "Select START, then STOP near the displayed target time."
      ],
      "steps": [
        "Open the arcade and choose cabinet 13 — Sunset Stop.",
        "Select START, then STOP as close as you can to 3.5 seconds.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 13",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 13 — Sunset Stop."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-stop-3.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 13: Sunset Stop. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-stop-3/"
    },
    {
      "slug": "arcade60-stop-4",
      "name": "Gate 42",
      "family": "Arcade 60",
      "kicker": "CABINET 14 / 50 · STOP THE CLOCK",
      "description": "Start the clock and stop as close as you can to 4 seconds. Cabinet 14 reports how far your timing landed from the target.",
      "accent": "#d7a47a",
      "controls": [
        "Select START, then STOP near the displayed target time."
      ],
      "steps": [
        "Open the arcade and choose cabinet 14 — Gate 42.",
        "Select START, then STOP as close as you can to 4 seconds.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 14",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 14 — Gate 42."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-stop-4.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 14: Gate 42. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-stop-4/"
    },
    {
      "slug": "arcade60-stop-5",
      "name": "Coffee Drip",
      "family": "Arcade 60",
      "kicker": "CABINET 15 / 50 · STOP THE CLOCK",
      "description": "Start the clock and stop as close as you can to 4.5 seconds. Cabinet 15 reports how far your timing landed from the target.",
      "accent": "#8575e0",
      "controls": [
        "Select START, then STOP near the displayed target time."
      ],
      "steps": [
        "Open the arcade and choose cabinet 15 — Coffee Drip.",
        "Select START, then STOP as close as you can to 4.5 seconds.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 15",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 15 — Coffee Drip."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-stop-5.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 15: Coffee Drip. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-stop-5/"
    },
    {
      "slug": "arcade60-slider-1",
      "name": "Marine Layer",
      "family": "Arcade 60",
      "kicker": "CABINET 16 / 50 · TUNE THE NUMBER",
      "description": "Tune the slider toward 18. Cabinet 16 locks in when you reach the requested number within two steps.",
      "accent": "#9be98e",
      "controls": [
        "Drag the slider to the requested number."
      ],
      "steps": [
        "Open the arcade and choose cabinet 16 — Marine Layer.",
        "Drag the slider to 18 and look for LOCKED IN.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 16",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 16 — Marine Layer."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-slider-1.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 16: Marine Layer. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-slider-1/"
    },
    {
      "slug": "arcade60-slider-2",
      "name": "Radio Tuner",
      "family": "Arcade 60",
      "kicker": "CABINET 17 / 50 · TUNE THE NUMBER",
      "description": "Tune the slider toward 34. Cabinet 17 locks in when you reach the requested number within two steps.",
      "accent": "#cf759b",
      "controls": [
        "Drag the slider to the requested number."
      ],
      "steps": [
        "Open the arcade and choose cabinet 17 — Radio Tuner.",
        "Drag the slider to 34 and look for LOCKED IN.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 17",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 17 — Radio Tuner."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-slider-2.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 17: Radio Tuner. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-slider-2/"
    },
    {
      "slug": "arcade60-slider-3",
      "name": "Perfect Toast",
      "family": "Arcade 60",
      "kicker": "CABINET 18 / 50 · TUNE THE NUMBER",
      "description": "Tune the slider toward 50. Cabinet 18 locks in when you reach the requested number within two steps.",
      "accent": "#70bbd7",
      "controls": [
        "Drag the slider to the requested number."
      ],
      "steps": [
        "Open the arcade and choose cabinet 18 — Perfect Toast.",
        "Drag the slider to 50 and look for LOCKED IN.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 18",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 18 — Perfect Toast."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-slider-3.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 18: Perfect Toast. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-slider-3/"
    },
    {
      "slug": "arcade60-slider-4",
      "name": "Palm Alignment",
      "family": "Arcade 60",
      "kicker": "CABINET 19 / 50 · TUNE THE NUMBER",
      "description": "Tune the slider toward 66. Cabinet 19 locks in when you reach the requested number within two steps.",
      "accent": "#e0df89",
      "controls": [
        "Drag the slider to the requested number."
      ],
      "steps": [
        "Open the arcade and choose cabinet 19 — Palm Alignment.",
        "Drag the slider to 66 and look for LOCKED IN.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 19",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 19 — Palm Alignment."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-slider-4.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 19: Palm Alignment. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-slider-4/"
    },
    {
      "slug": "arcade60-slider-5",
      "name": "Parking Line",
      "family": "Arcade 60",
      "kicker": "CABINET 20 / 50 · TUNE THE NUMBER",
      "description": "Tune the slider toward 82. Cabinet 20 locks in when you reach the requested number within two steps.",
      "accent": "#ca84e9",
      "controls": [
        "Drag the slider to the requested number."
      ],
      "steps": [
        "Open the arcade and choose cabinet 20 — Parking Line.",
        "Drag the slider to 82 and look for LOCKED IN.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 20",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 20 — Parking Line."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-slider-5.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 20: Parking Line. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-slider-5/"
    },
    {
      "slug": "arcade60-choice-1",
      "name": "Odd Umbrella",
      "family": "Arcade 60",
      "kicker": "CABINET 21 / 50 · FIND THE ODD ONE",
      "description": "Look across four symbols and pick the one that does not belong. Cabinet 21 is a tiny visual odd-one-out test.",
      "accent": "#6bcf93",
      "controls": [
        "Click or tap the one different symbol."
      ],
      "steps": [
        "Open the arcade and choose cabinet 21 — Odd Umbrella.",
        "Inspect the four symbols and select the one that is different.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 21",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 21 — Odd Umbrella."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-choice-1.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 21: Odd Umbrella. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-choice-1/"
    },
    {
      "slug": "arcade60-choice-2",
      "name": "Wrong Noun",
      "family": "Arcade 60",
      "kicker": "CABINET 22 / 50 · FIND THE ODD ONE",
      "description": "Look across four symbols and pick the one that does not belong. Cabinet 22 is a tiny visual odd-one-out test.",
      "accent": "#d78d83",
      "controls": [
        "Click or tap the one different symbol."
      ],
      "steps": [
        "Open the arcade and choose cabinet 22 — Wrong Noun.",
        "Inspect the four symbols and select the one that is different.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 22",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 22 — Wrong Noun."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-choice-2.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 22: Wrong Noun. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-choice-2/"
    },
    {
      "slug": "arcade60-choice-3",
      "name": "One Warm Tile",
      "family": "Arcade 60",
      "kicker": "CABINET 23 / 50 · FIND THE ODD ONE",
      "description": "Look across four symbols and pick the one that does not belong. Cabinet 23 is a tiny visual odd-one-out test.",
      "accent": "#7f90e0",
      "controls": [
        "Click or tap the one different symbol."
      ],
      "steps": [
        "Open the arcade and choose cabinet 23 — One Warm Tile.",
        "Inspect the four symbols and select the one that is different.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 23",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 23 — One Warm Tile."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-choice-3.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 23: One Warm Tile. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-choice-3/"
    },
    {
      "slug": "arcade60-choice-4",
      "name": "Different Cloud",
      "family": "Arcade 60",
      "kicker": "CABINET 24 / 50 · FIND THE ODD ONE",
      "description": "Look across four symbols and pick the one that does not belong. Cabinet 24 is a tiny visual odd-one-out test.",
      "accent": "#aee979",
      "controls": [
        "Click or tap the one different symbol."
      ],
      "steps": [
        "Open the arcade and choose cabinet 24 — Different Cloud.",
        "Inspect the four symbols and select the one that is different.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 24",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 24 — Different Cloud."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-choice-4.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 24: Different Cloud. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-choice-4/"
    },
    {
      "slug": "arcade60-choice-5",
      "name": "Strange Sock",
      "family": "Arcade 60",
      "kicker": "CABINET 25 / 50 · FIND THE ODD ONE",
      "description": "Look across four symbols and pick the one that does not belong. Cabinet 25 is a tiny visual odd-one-out test.",
      "accent": "#cf7ebb",
      "controls": [
        "Click or tap the one different symbol."
      ],
      "steps": [
        "Open the arcade and choose cabinet 25 — Strange Sock.",
        "Inspect the four symbols and select the one that is different.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 25",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 25 — Strange Sock."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-choice-5.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 25: Strange Sock. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-choice-5/"
    },
    {
      "slug": "arcade60-count-1",
      "name": "Tap the Pier",
      "family": "Arcade 60",
      "kicker": "CABINET 26 / 50 · THIRTY TAPS",
      "description": "Tap thirty times and race your own finish time. Cabinet 26 counts every press until the thirtieth tap.",
      "accent": "#7ad7d2",
      "controls": [
        "Click or tap the large button thirty times."
      ],
      "steps": [
        "Open the arcade and choose cabinet 26 — Tap the Pier.",
        "Tap the large button thirty times and inspect your finish time.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 26",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 26 — Tap the Pier."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-count-1.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 26: Tap the Pier. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-count-1/"
    },
    {
      "slug": "arcade60-count-2",
      "name": "Drum Fingers",
      "family": "Arcade 60",
      "kicker": "CABINET 27 / 50 · THIRTY TAPS",
      "description": "Tap thirty times and race your own finish time. Cabinet 27 counts every press until the thirtieth tap.",
      "accent": "#e0bb75",
      "controls": [
        "Click or tap the large button thirty times."
      ],
      "steps": [
        "Open the arcade and choose cabinet 27 — Drum Fingers.",
        "Tap the large button thirty times and inspect your finish time.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 27",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 27 — Drum Fingers."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-count-2.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 27: Drum Fingers. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-count-2/"
    },
    {
      "slug": "arcade60-count-3",
      "name": "Elevator Button",
      "family": "Arcade 60",
      "kicker": "CABINET 28 / 50 · THIRTY TAPS",
      "description": "Tap thirty times and race your own finish time. Cabinet 28 counts every press until the thirtieth tap.",
      "accent": "#af8ee9",
      "controls": [
        "Click or tap the large button thirty times."
      ],
      "steps": [
        "Open the arcade and choose cabinet 28 — Elevator Button.",
        "Tap the large button thirty times and inspect your finish time.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 28",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 28 — Elevator Button."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-count-3.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 28: Elevator Button. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-count-3/"
    },
    {
      "slug": "arcade60-count-4",
      "name": "Rain on Glass",
      "family": "Arcade 60",
      "kicker": "CABINET 29 / 50 · THIRTY TAPS",
      "description": "Tap thirty times and race your own finish time. Cabinet 29 counts every press until the thirtieth tap.",
      "accent": "#75cf7b",
      "controls": [
        "Click or tap the large button thirty times."
      ],
      "steps": [
        "Open the arcade and choose cabinet 29 — Rain on Glass.",
        "Tap the large button thirty times and inspect your finish time.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 29",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 29 — Rain on Glass."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-count-4.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 29: Rain on Glass. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-count-4/"
    },
    {
      "slug": "arcade60-count-5",
      "name": "Popcorn Shift",
      "family": "Arcade 60",
      "kicker": "CABINET 30 / 50 · THIRTY TAPS",
      "description": "Tap thirty times and race your own finish time. Cabinet 30 counts every press until the thirtieth tap.",
      "accent": "#d77087",
      "controls": [
        "Click or tap the large button thirty times."
      ],
      "steps": [
        "Open the arcade and choose cabinet 30 — Popcorn Shift.",
        "Tap the large button thirty times and inspect your finish time.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 30",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 30 — Popcorn Shift."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-count-5.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 30: Popcorn Shift. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-count-5/"
    },
    {
      "slug": "arcade60-guess-1",
      "name": "Secret Address",
      "family": "Arcade 60",
      "kicker": "CABINET 31 / 50 · HIDDEN NUMBER",
      "description": "Find a hidden number from one to one hundred. Cabinet 31 gives Higher and Lower hints after each guess.",
      "accent": "#89b6e0",
      "controls": [
        "Choose a number with the slider, then Guess; follow Higher/Lower hints."
      ],
      "steps": [
        "Open the arcade and choose cabinet 31 — Secret Address.",
        "Choose a number, select Guess, and follow Higher or Lower until you find it.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 31",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 31 — Secret Address."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-guess-1.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 31: Secret Address. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-guess-1/"
    },
    {
      "slug": "arcade60-guess-2",
      "name": "Noun Number",
      "family": "Arcade 60",
      "kicker": "CABINET 32 / 50 · HIDDEN NUMBER",
      "description": "Find a hidden number from one to one hundred. Cabinet 32 gives Higher and Lower hints after each guess.",
      "accent": "#d6e984",
      "controls": [
        "Choose a number with the slider, then Guess; follow Higher/Lower hints."
      ],
      "steps": [
        "Open the arcade and choose cabinet 32 — Noun Number.",
        "Choose a number, select Guess, and follow Higher or Lower until you find it.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 32",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 32 — Noun Number."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-guess-2.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 32: Noun Number. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-guess-2/"
    },
    {
      "slug": "arcade60-guess-3",
      "name": "Mystery Temperature",
      "family": "Arcade 60",
      "kicker": "CABINET 33 / 50 · HIDDEN NUMBER",
      "description": "Find a hidden number from one to one hundred. Cabinet 33 gives Higher and Lower hints after each guess.",
      "accent": "#c56bcf",
      "controls": [
        "Choose a number with the slider, then Guess; follow Higher/Lower hints."
      ],
      "steps": [
        "Open the arcade and choose cabinet 33 — Mystery Temperature.",
        "Choose a number, select Guess, and follow Higher or Lower until you find it.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 33",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 33 — Mystery Temperature."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-guess-3.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 33: Mystery Temperature. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-guess-3/"
    },
    {
      "slug": "arcade60-guess-4",
      "name": "Hidden Score",
      "family": "Arcade 60",
      "kicker": "CABINET 34 / 50 · HIDDEN NUMBER",
      "description": "Find a hidden number from one to one hundred. Cabinet 34 gives Higher and Lower hints after each guess.",
      "accent": "#83d7b7",
      "controls": [
        "Choose a number with the slider, then Guess; follow Higher/Lower hints."
      ],
      "steps": [
        "Open the arcade and choose cabinet 34 — Hidden Score.",
        "Choose a number, select Guess, and follow Higher or Lower until you find it.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 34",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 34 — Hidden Score."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-guess-4.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 34: Hidden Score. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-guess-4/"
    },
    {
      "slug": "arcade60-guess-5",
      "name": "Bus Arrival",
      "family": "Arcade 60",
      "kicker": "CABINET 35 / 50 · HIDDEN NUMBER",
      "description": "Find a hidden number from one to one hundred. Cabinet 35 gives Higher and Lower hints after each guess.",
      "accent": "#e09e7f",
      "controls": [
        "Choose a number with the slider, then Guess; follow Higher/Lower hints."
      ],
      "steps": [
        "Open the arcade and choose cabinet 35 — Bus Arrival.",
        "Choose a number, select Guess, and follow Higher or Lower until you find it.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 35",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 35 — Bus Arrival."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-guess-5.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 35: Bus Arrival. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-guess-5/"
    },
    {
      "slug": "arcade60-color-1",
      "name": "Ink Argument",
      "family": "Arcade 60",
      "kicker": "CABINET 36 / 50 · READ THE INK",
      "description": "Choose the ink color instead of the color word. Cabinet 36 asks for five correct color choices.",
      "accent": "#7c79e9",
      "controls": [
        "Select the button matching the ink color, rather than the written word."
      ],
      "steps": [
        "Open the arcade and choose cabinet 36 — Ink Argument.",
        "Choose the ink’s color button until you have five correct answers.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 36",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 36 — Ink Argument."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-color-1.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 36: Ink Argument. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-color-1/"
    },
    {
      "slug": "arcade60-color-2",
      "name": "Wrong Name",
      "family": "Arcade 60",
      "kicker": "CABINET 37 / 50 · READ THE INK",
      "description": "Choose the ink color instead of the color word. Cabinet 37 asks for five correct color choices.",
      "accent": "#93cf7e",
      "controls": [
        "Select the button matching the ink color, rather than the written word."
      ],
      "steps": [
        "Open the arcade and choose cabinet 37 — Wrong Name.",
        "Choose the ink’s color button until you have five correct answers.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 37",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 37 — Wrong Name."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-color-2.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 37: Wrong Name. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-color-2/"
    },
    {
      "slug": "arcade60-color-3",
      "name": "Riso Reflex",
      "family": "Arcade 60",
      "kicker": "CABINET 38 / 50 · READ THE INK",
      "description": "Choose the ink color instead of the color word. Cabinet 38 asks for five correct color choices.",
      "accent": "#d77aae",
      "controls": [
        "Select the button matching the ink color, rather than the written word."
      ],
      "steps": [
        "Open the arcade and choose cabinet 38 — Riso Reflex.",
        "Choose the ink’s color button until you have five correct answers.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 38",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 38 — Riso Reflex."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-color-3.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 38: Riso Reflex. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-color-3/"
    },
    {
      "slug": "arcade60-color-4",
      "name": "Traffic Light",
      "family": "Arcade 60",
      "kicker": "CABINET 39 / 50 · READ THE INK",
      "description": "Choose the ink color instead of the color word. Cabinet 39 asks for five correct color choices.",
      "accent": "#75d0e0",
      "controls": [
        "Select the button matching the ink color, rather than the written word."
      ],
      "steps": [
        "Open the arcade and choose cabinet 39 — Traffic Light.",
        "Choose the ink’s color button until you have five correct answers.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 39",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 39 — Traffic Light."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-color-4.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 39: Traffic Light. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-color-4/"
    },
    {
      "slug": "arcade60-color-5",
      "name": "Paint Store",
      "family": "Arcade 60",
      "kicker": "CABINET 40 / 50 · READ THE INK",
      "description": "Choose the ink color instead of the color word. Cabinet 40 asks for five correct color choices.",
      "accent": "#e9dd8e",
      "controls": [
        "Select the button matching the ink color, rather than the written word."
      ],
      "steps": [
        "Open the arcade and choose cabinet 40 — Paint Store.",
        "Choose the ink’s color button until you have five correct answers.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 40",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 40 — Paint Store."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-color-5.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 40: Paint Store. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-color-5/"
    },
    {
      "slug": "arcade60-word-1",
      "name": "Letter Beach",
      "family": "Arcade 60",
      "kicker": "CABINET 41 / 50 · POCKET ANAGRAM",
      "description": "Unscramble a 5-letter word. Cabinet 41 lets you shuffle the letters again while you work out the answer.",
      "accent": "#a875cf",
      "controls": [
        "Type the unscrambled word; Shuffle rearranges its letters."
      ],
      "steps": [
        "Open the arcade and choose cabinet 41 — Letter Beach.",
        "Type the unscrambled word; use Shuffle if you want a fresh letter arrangement.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 41",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 41 — Letter Beach."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-word-1.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 41: Letter Beach. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-word-1/"
    },
    {
      "slug": "arcade60-word-2",
      "name": "Arcade Scramble",
      "family": "Arcade 60",
      "kicker": "CABINET 42 / 50 · POCKET ANAGRAM",
      "description": "Unscramble a 6-letter word. Cabinet 42 lets you shuffle the letters again while you work out the answer.",
      "accent": "#70d78d",
      "controls": [
        "Type the unscrambled word; Shuffle rearranges its letters."
      ],
      "steps": [
        "Open the arcade and choose cabinet 42 — Arcade Scramble.",
        "Type the unscrambled word; use Shuffle if you want a fresh letter arrangement.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 42",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 42 — Arcade Scramble."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-word-2.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 42: Arcade Scramble. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-word-2/"
    },
    {
      "slug": "arcade60-word-3",
      "name": "Pocket Anagram",
      "family": "Arcade 60",
      "kicker": "CABINET 43 / 50 · POCKET ANAGRAM",
      "description": "Unscramble a 6-letter word. Cabinet 43 lets you shuffle the letters again while you work out the answer.",
      "accent": "#e0898a",
      "controls": [
        "Type the unscrambled word; Shuffle rearranges its letters."
      ],
      "steps": [
        "Open the arcade and choose cabinet 43 — Pocket Anagram.",
        "Type the unscrambled word; use Shuffle if you want a fresh letter arrangement.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 43",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 43 — Pocket Anagram."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-word-3.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 43: Pocket Anagram. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-word-3/"
    },
    {
      "slug": "arcade60-word-4",
      "name": "Signal Decoder",
      "family": "Arcade 60",
      "kicker": "CABINET 44 / 50 · POCKET ANAGRAM",
      "description": "Unscramble a 6-letter word. Cabinet 44 lets you shuffle the letters again while you work out the answer.",
      "accent": "#84a3e9",
      "controls": [
        "Type the unscrambled word; Shuffle rearranges its letters."
      ],
      "steps": [
        "Open the arcade and choose cabinet 44 — Signal Decoder.",
        "Type the unscrambled word; use Shuffle if you want a fresh letter arrangement.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 44",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 44 — Signal Decoder."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-word-4.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 44: Signal Decoder. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-word-4/"
    },
    {
      "slug": "arcade60-word-5",
      "name": "Fridge Magnet",
      "family": "Arcade 60",
      "kicker": "CABINET 45 / 50 · POCKET ANAGRAM",
      "description": "Unscramble a 6-letter word. Cabinet 45 lets you shuffle the letters again while you work out the answer.",
      "accent": "#a7cf6b",
      "controls": [
        "Type the unscrambled word; Shuffle rearranges its letters."
      ],
      "steps": [
        "Open the arcade and choose cabinet 45 — Fridge Magnet.",
        "Type the unscrambled word; use Shuffle if you want a fresh letter arrangement.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 45",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 45 — Fridge Magnet."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-word-5.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 45: Fridge Magnet. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-word-5/"
    },
    {
      "slug": "arcade60-path-1",
      "name": "Tiny Maze",
      "family": "Arcade 60",
      "kicker": "CABINET 46 / 50 · ARROW MEMORY",
      "description": "Remember five arrows and press their buttons in order. Cabinet 46 checks your route one turn at a time.",
      "accent": "#d783ce",
      "controls": [
        "Press the arrow buttons in the displayed order."
      ],
      "steps": [
        "Open the arcade and choose cabinet 46 — Tiny Maze.",
        "Read the five-arrow route and press the arrow buttons in the same order.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 46",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 46 — Tiny Maze."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-path-1.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 46: Tiny Maze. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-path-1/"
    },
    {
      "slug": "arcade60-path-2",
      "name": "Crosswalk Code",
      "family": "Arcade 60",
      "kicker": "CABINET 47 / 50 · ARROW MEMORY",
      "description": "Remember five arrows and press their buttons in order. Cabinet 47 checks your route one turn at a time.",
      "accent": "#7fe0cf",
      "controls": [
        "Press the arrow buttons in the displayed order."
      ],
      "steps": [
        "Open the arcade and choose cabinet 47 — Crosswalk Code.",
        "Read the five-arrow route and press the arrow buttons in the same order.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 47",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 47 — Crosswalk Code."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-path-2.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 47: Crosswalk Code. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-path-2/"
    },
    {
      "slug": "arcade60-path-3",
      "name": "Airport Wayfinding",
      "family": "Arcade 60",
      "kicker": "CABINET 48 / 50 · ARROW MEMORY",
      "description": "Remember five arrows and press their buttons in order. Cabinet 48 checks your route one turn at a time.",
      "accent": "#e9b479",
      "controls": [
        "Press the arrow buttons in the displayed order."
      ],
      "steps": [
        "Open the arcade and choose cabinet 48 — Airport Wayfinding.",
        "Read the five-arrow route and press the arrow buttons in the same order.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 48",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 48 — Airport Wayfinding."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-path-3.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 48: Airport Wayfinding. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-path-3/"
    },
    {
      "slug": "arcade60-path-4",
      "name": "Night Walk",
      "family": "Arcade 60",
      "kicker": "CABINET 49 / 50 · ARROW MEMORY",
      "description": "Remember five arrows and press their buttons in order. Cabinet 49 checks your route one turn at a time.",
      "accent": "#917ecf",
      "controls": [
        "Press the arrow buttons in the displayed order."
      ],
      "steps": [
        "Open the arcade and choose cabinet 49 — Night Walk.",
        "Read the five-arrow route and press the arrow buttons in the same order.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 49",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 49 — Night Walk."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-path-4.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 49: Night Walk. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-path-4/"
    },
    {
      "slug": "arcade60-path-5",
      "name": "Treasure Route",
      "family": "Arcade 60",
      "kicker": "CABINET 50 / 50 · ARROW MEMORY",
      "description": "Remember five arrows and press their buttons in order. Cabinet 50 checks your route one turn at a time.",
      "accent": "#7fd77a",
      "controls": [
        "Press the arrow buttons in the displayed order."
      ],
      "steps": [
        "Open the arcade and choose cabinet 50 — Treasure Route.",
        "Read the five-arrow route and press the arrow buttons in the same order.",
        "Use New round to try again, or Choose another to return to the shelf."
      ],
      "playUrl": "https://arcade-60.mhoydich.chatgpt.site/#games",
      "players": "1 player",
      "participation": [
        {
          "label": "Open cabinet 50",
          "url": "https://arcade-60.mhoydich.chatgpt.site/#games",
          "description": "Open the arcade and choose cabinet 50 — Treasure Route."
        },
        {
          "label": "The full Arcade 60 shelf",
          "url": "/play/games/arcade-60/",
          "description": "Choose another cabinet or read the arcade’s launch instructions."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/arcade60-path-5.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with the live arcade link and instructions for cabinet 50: Treasure Route. The published arcade has no individual game deep link; choose this cabinet after opening the shelf."
      },
      "saveNote": "Starts and completed game IDs stay in this browser’s Arcade 60 activity record. Round results are local and do not establish a verified shared leaderboard.",
      "networkNote": "The published game runtime is on the Arcade 60 satellite. The launch kit requires internet and opens the live games shelf. Noun mint presses are separate tools.",
      "landing": "/play/games/arcade60-path-5/"
    },
    {
      "slug": "micro-signal",
      "name": "Signal Run",
      "family": "Micro Club",
      "kicker": "CLASSIC · REFLEX",
      "description": "Collect stars and avoid blocks through three lanes for a 45-second run; you start with three lives.",
      "accent": "#e0759a",
      "controls": [
        "Left/right arrow keys or touch controls change lanes; Space starts, P pauses.",
        "An ordinary keyboard or touch controls work; a Micro controller is optional."
      ],
      "steps": [
        "Open Signal Run and start the forty-five-second run.",
        "Change lanes to collect stars and avoid blocks while protecting your three lives."
      ],
      "playUrl": "https://pointcast-micro-club.mhoydich.workers.dev/classic/?play=signal",
      "players": "1 player",
      "participation": [
        {
          "label": "Play Signal Run",
          "url": "https://pointcast-micro-club.mhoydich.workers.dev/classic/?play=signal",
          "description": "Open this game directly with the published game-selection link."
        },
        {
          "label": "Micro Club home",
          "url": "https://pointcast-micro-club.mhoydich.workers.dev/club/",
          "description": "Explore the club, controller setup, and the other published games."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/micro-signal.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with this game’s verified direct selection URL and keyboard or touch instructions. The published browser runtime stays on the Micro Club site."
      },
      "saveNote": "Classic bests, player milestones, and mappings stay in this browser. Scores are local and unverified.",
      "networkNote": "Hosted browser experience; launch kit needs internet. Ordinary keys and touch work; optional hardware lighting needs a separately configured local bridge.",
      "hero": "https://pointcast-micro-club.mhoydich.workers.dev/ads/art/small-keys.png",
      "landing": "/play/games/micro-signal/"
    },
    {
      "slug": "micro-echo",
      "name": "Pocket Echo",
      "family": "Micro Club",
      "kicker": "CLASSIC · MEMORY",
      "description": "Watch and listen to a growing sequence, then repeat it for up to eight rounds. A wrong pad ends the run.",
      "accent": "#8ec9e9",
      "controls": [
        "Use A/S/D/F or the four touch pads; Space starts, P pauses.",
        "An ordinary keyboard or touch controls work; a Micro controller is optional."
      ],
      "steps": [
        "Open Pocket Echo and watch the first pad sequence.",
        "Repeat the melody, adding a note each round, and try to reach all eight rounds."
      ],
      "playUrl": "https://pointcast-micro-club.mhoydich.workers.dev/classic/?play=echo",
      "players": "1 player",
      "participation": [
        {
          "label": "Play Pocket Echo",
          "url": "https://pointcast-micro-club.mhoydich.workers.dev/classic/?play=echo",
          "description": "Open this game directly with the published game-selection link."
        },
        {
          "label": "Micro Club home",
          "url": "https://pointcast-micro-club.mhoydich.workers.dev/club/",
          "description": "Explore the club, controller setup, and the other published games."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/micro-echo.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with this game’s verified direct selection URL and keyboard or touch instructions. The published browser runtime stays on the Micro Club site."
      },
      "saveNote": "Classic bests, player milestones, and mappings stay in this browser. Scores are local and unverified.",
      "networkNote": "Hosted browser experience; launch kit needs internet. Ordinary keys and touch work; optional hardware lighting needs a separately configured local bridge.",
      "hero": "https://pointcast-micro-club.mhoydich.workers.dev/ads/art/small-keys.png",
      "landing": "/play/games/micro-echo/"
    },
    {
      "slug": "micro-bloom",
      "name": "Bloom Room",
      "family": "Micro Club",
      "kicker": "CLASSIC · CREATIVE PLAY",
      "description": "Each pad plants a flower and plays a note. Twelve notes earn the Garden grown milestone; free play continues without a timer or wrong notes.",
      "accent": "#c9cf75",
      "controls": [
        "Use A/S/D/F or touch pads to plant; left/right changes the musical mood.",
        "An ordinary keyboard or touch controls work; a Micro controller is optional."
      ],
      "steps": [
        "Open Bloom Room and start a musical garden.",
        "Plant twelve notes for the Garden grown milestone, then keep playing or change the mood."
      ],
      "playUrl": "https://pointcast-micro-club.mhoydich.workers.dev/classic/?play=bloom",
      "players": "1 player",
      "participation": [
        {
          "label": "Play Bloom Room",
          "url": "https://pointcast-micro-club.mhoydich.workers.dev/classic/?play=bloom",
          "description": "Open this game directly with the published game-selection link."
        },
        {
          "label": "Micro Club home",
          "url": "https://pointcast-micro-club.mhoydich.workers.dev/club/",
          "description": "Explore the club, controller setup, and the other published games."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/micro-bloom.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with this game’s verified direct selection URL and keyboard or touch instructions. The published browser runtime stays on the Micro Club site."
      },
      "saveNote": "Classic bests, player milestones, and mappings stay in this browser. Scores are local and unverified.",
      "networkNote": "Hosted browser experience; launch kit needs internet. Ordinary keys and touch work; optional hardware lighting needs a separately configured local bridge.",
      "hero": "https://pointcast-micro-club.mhoydich.workers.dev/ads/art/small-keys.png",
      "landing": "/play/games/micro-bloom/"
    },
    {
      "slug": "micro-dial",
      "name": "Dial In",
      "family": "Micro Club",
      "kicker": "SERIES TWO · PRECISION",
      "description": "Tune and lock five hidden stations within two dial clicks of their target during 60 seconds.",
      "accent": "#c070d7",
      "controls": [
        "[ and ] tune; A/F make larger steps; Space locks; touch buttons also work.",
        "An ordinary keyboard or touch controls work; a Micro controller is optional."
      ],
      "steps": [
        "Open Dial In and start the sixty-second tuning round.",
        "Follow the signal cue and lock five stations within two dial clicks of each target."
      ],
      "playUrl": "https://pointcast-micro-club.mhoydich.workers.dev/v2/?game=dial",
      "players": "1 player",
      "participation": [
        {
          "label": "Play Dial In",
          "url": "https://pointcast-micro-club.mhoydich.workers.dev/v2/?game=dial",
          "description": "Open this game directly with the published game-selection link."
        },
        {
          "label": "Micro Club home",
          "url": "https://pointcast-micro-club.mhoydich.workers.dev/club/",
          "description": "Explore the club, controller setup, and the other published games."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/micro-dial.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with this game’s verified direct selection URL and keyboard or touch instructions. The published browser runtime stays on the Micro Club site."
      },
      "saveNote": "Personal bests are stored in this browser by game and seed; mappings and timing offset are local. Scores are unverified.",
      "networkNote": "Hosted browser experience; launch kit needs internet. Ordinary keys and touch work; optional hardware lighting needs a separately configured local bridge.",
      "hero": "https://pointcast-micro-club.mhoydich.workers.dev/ads/art/small-keys.png",
      "landing": "/play/games/micro-dial/"
    },
    {
      "slug": "micro-switchboard",
      "name": "Switchboard",
      "family": "Micro Club",
      "kicker": "SERIES TWO · PUZZLE",
      "description": "Connect IN to OUT across three circuits by rotating route tiles; a hint costs seventy points.",
      "accent": "#89e0b3",
      "controls": [
        "Arrow keys select a tile, Space rotates, F gives a hint; touch buttons also work.",
        "An ordinary keyboard or touch controls work; a Micro controller is optional."
      ],
      "steps": [
        "Open Switchboard and inspect IN and OUT on the first circuit.",
        "Select and rotate tiles to make a route through three circuits; use a seventy-point hint when you need it."
      ],
      "playUrl": "https://pointcast-micro-club.mhoydich.workers.dev/v2/?game=switchboard",
      "players": "1 player",
      "participation": [
        {
          "label": "Play Switchboard",
          "url": "https://pointcast-micro-club.mhoydich.workers.dev/v2/?game=switchboard",
          "description": "Open this game directly with the published game-selection link."
        },
        {
          "label": "Micro Club home",
          "url": "https://pointcast-micro-club.mhoydich.workers.dev/club/",
          "description": "Explore the club, controller setup, and the other published games."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/micro-switchboard.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with this game’s verified direct selection URL and keyboard or touch instructions. The published browser runtime stays on the Micro Club site."
      },
      "saveNote": "Personal bests are stored in this browser by game and seed; mappings and timing offset are local. Scores are unverified.",
      "networkNote": "Hosted browser experience; launch kit needs internet. Ordinary keys and touch work; optional hardware lighting needs a separately configured local bridge.",
      "hero": "https://pointcast-micro-club.mhoydich.workers.dev/ads/art/small-keys.png",
      "landing": "/play/games/micro-switchboard/"
    },
    {
      "slug": "micro-pulse",
      "name": "Pulse Club",
      "family": "Micro Club",
      "kicker": "SERIES TWO · RHYTHM",
      "description": "Hit four lanes as notes reach the line in a 30-second seeded rhythm round, scored by timing and combo.",
      "accent": "#e99784",
      "controls": [
        "A/S/D/F hit the lanes; P pauses; touch pads also work.",
        "An ordinary keyboard or touch controls work; a Micro controller is optional."
      ],
      "steps": [
        "Open Pulse Club and start the seeded rhythm round.",
        "Hit the four lanes as notes reach the line and build a steady combo."
      ],
      "playUrl": "https://pointcast-micro-club.mhoydich.workers.dev/v2/?game=pulse",
      "players": "1 player",
      "participation": [
        {
          "label": "Play Pulse Club",
          "url": "https://pointcast-micro-club.mhoydich.workers.dev/v2/?game=pulse",
          "description": "Open this game directly with the published game-selection link."
        },
        {
          "label": "Micro Club home",
          "url": "https://pointcast-micro-club.mhoydich.workers.dev/club/",
          "description": "Explore the club, controller setup, and the other published games."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/micro-pulse.zip",
        "type": "Online launch kit",
        "note": "Online launch kit with this game’s verified direct selection URL and keyboard or touch instructions. The published browser runtime stays on the Micro Club site."
      },
      "saveNote": "Personal bests are stored in this browser by game and seed; mappings and timing offset are local. Scores are unverified.",
      "networkNote": "Hosted browser experience; launch kit needs internet. Ordinary keys and touch work; optional hardware lighting needs a separately configured local bridge.",
      "hero": "https://pointcast-micro-club.mhoydich.workers.dev/ads/art/small-keys.png",
      "landing": "/play/games/micro-pulse/"
    },
    {
      "slug": "tidepool-puzzle",
      "name": "Tidepool Puzzle",
      "family": "Quick games",
      "kicker": "Twelve pieces, your own pace",
      "description": "Put together a little coast in a 12-piece picture assembly game. Pick a piece, choose its place, and reveal the tidepool without a timer.",
      "hero": "/images/puzzles/01-tidepool-atlas.webp",
      "accent": "#b9dfd7",
      "controls": [
        "Select a piece, then select a board space. Tab and Enter or Space work too.",
        "Turn on row and column hints, show the picture guide, or choose Start again."
      ],
      "steps": [
        "Open the small practice table below the puzzle collection.",
        "Choose a piece, then its matching place on the three-by-four board.",
        "Place all twelve pieces to complete the picture."
      ],
      "playUrl": "/puzzles/#play",
      "players": "1 player; a shared-screen table",
      "participation": [
        {
          "label": "Try the tidepool",
          "url": "/puzzles/#play",
          "description": "Use the hints and picture guide to make a little coast."
        },
        {
          "label": "Study the collection",
          "url": "/puzzles/#concepts",
          "description": "Explore ten original artwork concepts; the playable demo uses Tidepool atlas."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/tidepool-puzzle.zip",
        "type": "Local game pack",
        "note": "Local picture-assembly game and the collection artwork. Supplier links and other PointCast pages open online."
      },
      "saveNote": "The puzzle starts fresh on a new visit; no persistent puzzle save is offered.",
      "networkNote": "Assemble the picture on one screen. Share the page or solve beside a friend; there is no synchronized multiplayer room.",
      "landing": "/play/games/tidepool-puzzle/"
    },
    {
      "slug": "baseball",
      "name": "Baseball — a little half inning",
      "family": "Sports & party",
      "kicker": "Six batters and a pencil",
      "description": "Follow an illustrated half inning, see runners move around the diamond, and learn the scorecard. A guided baseball interactive to watch together.",
      "hero": "/images/baseball/ballpark.webp",
      "accent": "#d9dfb7",
      "controls": [
        "Choose Next batter or Back to step through the six authored plays.",
        "Switch between The ball, The pencil and The company to change what you notice."
      ],
      "steps": [
        "Open the illustrated half inning.",
        "Step through six batters and watch the score, outs and runners change.",
        "Choose a viewing lens, then keep a small ballpark memory if you like."
      ],
      "playUrl": "/baseball/#inning",
      "players": "1 reader; watch together on one screen",
      "participation": [
        {
          "label": "Follow the inning",
          "url": "/baseball/#inning",
          "description": "Take turns reading the plays and keeping the little scorecard."
        },
        {
          "label": "Read the field note",
          "url": "/baseball/#essay",
          "description": "Explore the essay and source notes, then write your own browser-local memory."
        }
      ],
      "editions": [],
      "download": {
        "url": "/downloads/games/baseball.zip",
        "type": "Local game pack",
        "note": "Local illustrated half inning and field note. This follows six authored plays; it is not a competitive baseball simulator. External sources and site navigation need Internet."
      },
      "saveNote": "Your written memory stays in this browser and origin. Use the feature’s Download the card control to keep a separate copy.",
      "networkNote": "Read and watch on one screen or share the page. The guided half inning has no online multiplayer room.",
      "landing": "/play/games/baseball/"
    }
  ]
}