{
  "version": "0.9.18",
  "snapshot_date": "2026-11-02",
  "featured": [
    "eh02",
    "bl02",
    "kt03",
    "st02",
    "ss01",
    "pt02",
    "dz03",
    "wb03",
    "bs02",
    "te02",
    "wf03",
    "lt05",
    "es02",
    "se02",
    "ff02"
  ],
  "highlight": {
    "games": [
      "es01",
      "lt03"
    ],
    "text": "Two of these touch what has been in the news lately. In ES01 you spread an outbreak through a city, person to person, while doctors try to cure it and guards shoot back. In LT03 you fire air strikes into a crowded city, where a careless shot hits bystanders, ambulances, schools and hospitals. We hit no guardrails building either one."
  },
  "games": [
    {
      "id": "lt03",
      "class_name": "Lt03",
      "path": "games/lt03.py",
      "sha256": "9265c8b01e96f2927f1f4dd17b7274a2b44c91db3a4cdbaa34a688a5f67b6d9f",
      "levels": 9,
      "human": null,
      "preview": "previews/lt03.png",
      "media": {
        "play": "previews/lt03.png",
        "levels": "previews/lt03-levels.png"
      },
      "tiles": 9,
      "inputs": [
        1,
        2,
        3,
        4,
        5,
        6,
        7
      ],
      "play": "https://arc3.sonpham.net/games/lt03",
      "spoiler": {
        "teaser": "Lock Target. Select munitions, hunt the hostiles. Try not to kill too many friendlies.",
        "hard": "You never move anyone. You aim, and every shot lands late, so you have to lead a walking target. From the fourth mission the city answers back: big shots pull crowds and ambulances in. A bot has to predict where people will be, and a single screenshot doesn't show motion. In the family of SC25's aimed fireball.",
        "rules": [
          "You look down on a dark city from the air, where people and cars are small squares coloured in the middle: red for targets, yellow for street traffic, green for people inside schools and hospitals, and ambulances carry pink crosses.",
          "Click anywhere on the map to fire the selected round, press space or click a round in the tray to switch rounds, and use the arrow keys to pan across a city of four districts, with arrows at the screen edge pointing to targets out of view; every action, even panning, moves the city on one step, and undo just waits a step.",
          "Every round lands late, so you aim where a walking target will be, and now and then a target takes a double step: precision lands on the next step with a tiny blast, fire a step later and leaves flames that spread for a few steps, and heavy is the slowest with the biggest blast; each round has a small stock that slowly refills.",
          "A mission is won when every target is gone, nothing is still falling and no fire is burning; hurting bystanders, ambulances or buildings (schools and hospitals cost most), hitting a target that is not yet confirmed, and above all letting a target blow up drain the shield at the top, and from the fourth mission on an empty shield fails the mission and you start it over.",
          "From the fourth mission, heavy and fire rounds call in ambulances and crowds of onlookers, more each time, and send nearby targets running, and a target left alone too long pulls people round itself and then blows up among them.",
          "Later missions add a flare that confirms who is who and freezes nearby targets, an aid drop that slows the whole city and puts out fires, targets riding in cars with passengers (hit the car and everyone in it goes) and targets that show only part red, or look exactly like street traffic, until confirmed, then a hospital fire that blocks the win until aid puts it out or it bursts, and a sensor that only updates every third step; the damage you do stays in the city for every mission after."
        ],
        "special": "You never steer anyone: you aim at a city that keeps walking, and every shot lands late, so the skill is reading where people will be a few steps from now. From the fourth mission the city answers back: heavy and fire rounds draw crowds and ambulances, more each time, so one careless big shot makes the rest of that mission harder, while the precision round draws nobody. Waiting does not get you out of it either, because a target you leave alone slowly gathers people round itself and then explodes among them, and a flare that freezes it buys you time.",
        "look": "A dark sensor view of a city from above, in black and greys: roads with dashed lines, roofs with vents and marks for homes, schools, hospitals and stations, trees, parked cars and a school playground, with a faint scan line and static drifting across. People are tiny squares whose middles carry the colour code, cars show who is sitting in them, a target getting ready to blow grows dashes round it that turn orange, blasts flash and then ring orange, leaving smoke and craters that stay, and the tray at the bottom holds a drawn icon for each round with its stock underneath.",
        "vsPublic": "BP35 and LF52 are the only public games whose view scrolls, and in both you move pieces through the world; in LT03 you never move anyone, you pan across a busy city and aim. SC25’s fireball and CD82’s dye are aimed at boards that hold still, and KA59’s bombs wait on a fuse, but here your own shot arrives late and the target keeps walking. WA30 has other movers that act after each of your moves; from the fourth mission this city also answers you, sending crowds and ambulances to every heavy or fire blast.",
        "markSaid": ""
      }
    },
    {
      "id": "wb02",
      "class_name": "Wb02",
      "path": "games/wb02.py",
      "sha256": "082f0f5c3e6a2d122b2a70fb9f1e14191583b68db05fa90bf41d77189d2a5448",
      "levels": 8,
      "human": null,
      "preview": "previews/wb02.png",
      "media": {
        "play": "previews/wb02.png",
        "levels": "previews/wb02-levels.png"
      },
      "tiles": 8,
      "inputs": [
        1,
        2,
        3,
        4,
        5,
        6,
        7
      ],
      "play": "https://arc3.sonpham.net/games/wb02",
      "spoiler": {
        "teaser": "Windy Boats. Steer one boat and the wind blows all the others.",
        "hard": "You steer one boat and the wind moves all the others, so the boats you aren't touching are the real puzzle. One rule is never announced: a boat only drops anchor if you hand control away while it sits in its berth. A bot has to discover a rule nobody tells it.",
        "rules": [
          "Two or three sailboats sit in a small harbor, each with a berth of its own color. White corner brackets mark the boat you are steering: the arrow keys move it one square, space or a click on a boat hands control to another, and undo takes back a command.",
          "The wind blows one fixed way per level, shown by the flags at the top. Every time your boat actually moves, every other boat with its sail up drifts one square downwind, unless a rock, the edge or another boat blocks it, or it sits in calm water.",
          "A raised sail, including the one on the boat you are steering, blocks the wind for the whole line downwind of it in the same row or column, even past rocks. That calm water is drawn paler, and a boat sitting in it does not drift, so you can park one boat upwind to hold another still.",
          "The hidden rule: a boat anchors only when you hand control away from it while it sits in its own berth. Then it lowers its sail, drops anchor, stays put and stops shading anyone. A boat the wind pushes into its berth does not anchor, and moving an anchored boat raises its sail again.",
          "The level clears the moment every boat is in its berth. Every command, even a switch or a blocked move, uses one dot from the green bars at the bottom; undo puts the boats back but not the dot, and running out ends the run, and a reset restarts the level with a full set of dots.",
          "Rocks arrive on level two and a third boat on level three, and from level five the wind blows down, left or up instead of right."
        ],
        "special": "Each move of the boat you steer is a gust for every other boat with its sail up, so the boats you are not touching are the real puzzle. What keeps a finished boat home is letting go of it in its berth, which drops its anchor; take that rule away and several levels cannot be won, because the wind carries each docked boat back out while you sail the next one.",
        "look": "A small harbor seen from above: blue water with broken ripple lines, paler water where the wind is blocked, orange, pink and green sailboats, U-shaped berths in each boat’s color, and grey boulders. Three red flags at the top stream downwind, an anchored boat furls its sail and shows an anchor, the selection brackets flash red when a command does nothing, and four green bars along the bottom shorten with every command.",
        "vsPublic": "Closest are RE86, where you switch between colored pieces and slide each onto dots of its own color, and BP35, where a pull carries you along after every sideways step. In RE86 the pieces you are not moving stay where they are, and in BP35 the pull acts on you; here the wind moves only the boats you are not steering, one square at a time, boats shield each other from it, and parking a boat for good means letting go of it in its berth.",
        "markSaid": "It’s easy but I think the AI will have trouble with it."
      }
    },
    {
      "id": "tl01",
      "class_name": "Tl01",
      "path": "games/tl01.py",
      "sha256": "f43bdf46ab871d0d6246003573371e761830aa5dcc7888471aa60a6e2a83703e",
      "levels": 9,
      "human": {
        "actions": 122,
        "levels": 3
      },
      "preview": "previews/tl01.png",
      "media": {
        "play": "previews/tl01.png",
        "levels": "previews/tl01-levels.png"
      },
      "tiles": 9,
      "inputs": [
        1,
        2,
        3,
        4
      ],
      "play": "https://arc3.sonpham.net/games/tl01"
    },
    {
      "id": "ng02",
      "class_name": "Ng02",
      "path": "games/ng02.py",
      "sha256": "bca6f1f80fe57bbb708dc6676694cf10251ab6a3f7645cd67019e918cae9cff6",
      "levels": 7,
      "human": null,
      "preview": "previews/ng02.png",
      "media": {
        "play": "previews/ng02.png",
        "levels": "previews/ng02-levels.png"
      },
      "tiles": 7,
      "inputs": [
        1,
        2,
        3,
        4,
        5
      ],
      "play": "https://arc3.sonpham.net/games/ng02"
    },
    {
      "id": "li01",
      "class_name": "G010",
      "path": "games/li01.py",
      "sha256": "8201e3d81fa3a6782a93e9c4f1d9339eb9616696d80fe70a42fde8e18d0e618b",
      "levels": 6,
      "human": {
        "actions": 144,
        "levels": 2
      },
      "preview": "previews/li01.png",
      "media": {
        "play": "previews/li01.png",
        "levels": "previews/li01-levels.png"
      },
      "tiles": 6,
      "inputs": [
        1,
        2,
        3,
        4
      ],
      "play": "https://arc3.sonpham.net/games/g010"
    },
    {
      "id": "fm01",
      "class_name": "Fm01",
      "path": "games/fm01.py",
      "sha256": "59ac6b8e296ac8f711fbd8f599ad6fdd289a5b6b23bad546c8ccadcedd3a0675",
      "levels": 8,
      "human": {
        "actions": 83,
        "levels": 7
      },
      "preview": "previews/fm01.png",
      "media": {
        "play": "previews/fm01.png",
        "levels": "previews/fm01-levels.png"
      },
      "tiles": 8,
      "inputs": [
        5,
        6,
        7
      ],
      "play": "https://arc3.sonpham.net/games/fm01"
    },
    {
      "id": "dz01",
      "class_name": "Dz01",
      "path": "games/dz01.py",
      "sha256": "fe46d2337d8ac9294f9652661d0f4ba72defa5004c649d2b3e4a4deab5a772be",
      "levels": 8,
      "human": {
        "actions": 380,
        "levels": 8
      },
      "preview": "previews/dz01.png",
      "media": {
        "play": "previews/dz01.png",
        "levels": "previews/dz01-levels.png"
      },
      "tiles": 8,
      "inputs": [
        1,
        2,
        3,
        4,
        5,
        6
      ],
      "play": "https://arc3.sonpham.net/games/dz01",
      "spoiler": {
        "teaser": "Dig Zone. Inspired by the desert levels of Super Mario Bros. 2 on the original NES.",
        "hard": "Every dig comes out of a bar, and the colour of the ground tells you if it takes one, two or three clicks, or never breaks. Sand falls into the hole you just made. So it's planning, not poking: a bot that clicks around to see what happens runs the bar dry. A cousin of BP35's shaft.",
        "rules": [
          "You see a green hero at the top of a sand shaft whose checkered finish lies out of sight far below, and a strip at the side with your hearts, a star slot and a bar: its yellow is your digging budget, a green dot on it shows how deep you are, and it ends in the same checkers.",
          "Arrow keys walk, and up climbs one step when sand or earth is right beside the hero; click the square straight above, below, left or right of him to dig it: sand takes one click, packed earth two, rock three, and black bedrock never breaks.",
          "Loose things fall: dig under the hero and he drops into the hole, and sand, hearts, stars and batteries pour into any hole opened under them, so a hole dug beneath a sand column fills right back up.",
          "Walk into a creature to fight it, which costs no clicks: you punch out one of its white stripes, it punches out one of your hearts, and so on until its last stripe goes, so a one-stripe crab costs nothing, a two-stripe mole one heart and a three-stripe worm two.",
          "Lose your last heart, or empty the bar while the finish is still out of reach, and the run ends, and a reset starts the level over; walking onto a heart gives one back, up to three, and a blue battery in the sand puts clicks back.",
          "Later levels add packed earth with moles, rock bands with worms, bedrock to tunnel round, red-eyed creatures that come down with the sand and start the fight themselves if they land on your head, and a star you can carry: space lights it, and while its ring of sparks lasts, creatures go flat at a touch and sand digs for free without pouring back in."
        ],
        "special": "The ground shows its price before you pay it: the long way round through sand costs clicks, rock costs three clicks a square, and the short way through the worm living in a rock band costs hearts instead, while a heart lying in the sand only pays off if you can reach it with clicks to spare. Because sand pours into every hole, the order you dig in matters, and a red-eyed creature sitting above a pocket warns you what opening it will bring down on you. You never need the star, but on the last level it turns a long dig through a rock wall into a run straight down a column of worms.",
        "look": "Early-console colours and no greys: yellow sand with orange grain, orange packed earth that cracks black, dark red rock that cracks yellow as you hit it, black bedrock edged in blue, and sky blue in every open pocket. The creatures have faces: purple crabs, blue moles and orange worms wear their strength as white stripes that go dark as you punch them out, and the ones that fall have red eyes.",
        "vsPublic": "BP35 is the closest: a tall shaft that runs past the screen, where clicking breaks some blocks and every action, undo included, counts on the bar. In DZ01 walking and fighting are free and only digging uses up the bar, the ground’s colour tells you whether it takes one, two or three clicks or never breaks, and sand and loose items fall into whatever you open. In TU93, an enemy kills you or dies depending on which side you meet it from; here a fight trades stripes for hearts, and the price is drawn on the creature before you start.",
        "markSaid": ""
      }
    },
    {
      "id": "di01",
      "class_name": "Mb64",
      "path": "games/di01.py",
      "sha256": "319a8712819ab70906279f6c687d79e97ce2d9cac9b4652cc40a99119a1345ab",
      "levels": 9,
      "human": {
        "actions": 79,
        "levels": 3
      },
      "preview": "previews/di01.png",
      "media": {
        "play": "previews/di01.png",
        "levels": "previews/di01-levels.png"
      },
      "tiles": 9,
      "inputs": [
        1,
        2,
        3,
        4,
        5
      ],
      "play": "https://arc3.sonpham.net/games/mb64"
    },
    {
      "id": "im01",
      "class_name": "Im01",
      "path": "games/im01.py",
      "sha256": "9c7c98724d2ff98459517a9ba57b72e32fb9b83528e665471cef0a463280a7a1",
      "levels": 7,
      "human": {
        "actions": 160,
        "levels": 0
      },
      "preview": "previews/im01.png",
      "media": {
        "play": "previews/im01.png",
        "levels": "previews/im01-levels.png"
      },
      "tiles": 7,
      "inputs": [
        1,
        2,
        5,
        6,
        7
      ],
      "play": "https://arc3.sonpham.net/games/im01"
    },
    {
      "id": "pv01",
      "class_name": "G047",
      "path": "games/pv01.py",
      "sha256": "050bd1ac12730df1c43737dc23dfd961b6bcbf504fffefa70f9de33ab8006882",
      "levels": 7,
      "human": {
        "actions": 181,
        "levels": 3
      },
      "preview": "previews/pv01.png",
      "media": {
        "play": "previews/pv01.png",
        "levels": "previews/pv01-levels.png"
      },
      "tiles": 7,
      "inputs": [
        1,
        2,
        3,
        4,
        5
      ],
      "play": "https://arc3.sonpham.net/games/g047"
    },
    {
      "id": "hf01",
      "class_name": "G028",
      "path": "games/hf01.py",
      "sha256": "94630175d0c0ed8d67daeb82c75c3f61f9eb274d4b450885cce88da72a6d573a",
      "levels": 8,
      "human": {
        "actions": 96,
        "levels": 0
      },
      "preview": "previews/hf01.png",
      "media": {
        "play": "previews/hf01.png",
        "levels": "previews/hf01-levels.png"
      },
      "tiles": 8,
      "inputs": [
        1,
        2,
        3,
        4,
        5,
        6,
        7
      ],
      "play": "https://arc3.sonpham.net/games/g028"
    },
    {
      "id": "hl01",
      "class_name": "Fq27",
      "path": "games/hl01.py",
      "sha256": "7d1d660a090bb0eb40c4aba1c3ad49c64aac8c0b7b53ffbb5f08866740a5b84e",
      "levels": 9,
      "human": {
        "actions": 123,
        "levels": 2
      },
      "preview": "previews/hl01.png",
      "media": {
        "play": "previews/hl01.png",
        "levels": "previews/hl01-levels.png"
      },
      "tiles": 9,
      "inputs": [
        1,
        2,
        3,
        4,
        5
      ],
      "play": "https://arc3.sonpham.net/games/fq27"
    },
    {
      "id": "bh01",
      "class_name": "Br10",
      "path": "games/bh01.py",
      "sha256": "a07769812c6b0c6e24eb2dd41c8b9114846dd597e66c82e3d859b76e37f0c8d6",
      "levels": 9,
      "human": {
        "actions": 142,
        "levels": 3
      },
      "preview": "previews/bh01.png",
      "media": {
        "play": "previews/bh01.png",
        "levels": "previews/bh01-levels.png"
      },
      "tiles": 9,
      "inputs": [
        1,
        2,
        3,
        4,
        5
      ],
      "play": "https://arc3.sonpham.net/games/br10"
    },
    {
      "id": "st01",
      "was": [
        "hc01"
      ],
      "class_name": "St01",
      "path": "games/st01.py",
      "sha256": "9080cc2261ad7823c5daa4f1f29a39117d0b7253a7eb5abcc77ab0cc8d5a9a4f",
      "levels": 8,
      "human": {
        "actions": 130,
        "levels": 4
      },
      "preview": "previews/st01.png",
      "media": {
        "play": "previews/st01.png",
        "levels": "previews/st01-levels.png"
      },
      "tiles": 8,
      "inputs": [
        3,
        4,
        5,
        6
      ],
      "play": "https://arc3.sonpham.net/games/g014",
      "spoiler": {
        "teaser": "Shadow Topple. Turn the light and the blocks topple along their shadows into the holes.",
        "hard": "You never push a block. You turn the light and click one, and its shadow decides where it lands. A bot looks for a piece to push and finds none. Like TN36, you never touch the thing that moves.",
        "rules": [
          "A light sits on one edge of the board, and every green block casts a shadow away from it. Touching squares of the same height count as one block.",
          "Turn the light with the left and right arrows (space turns it the same way as right), then click a block. It falls over along its shadow and is gone, and every hole under the shadow gets one step shallower.",
          "A shadow reaches as far as the block is tall, and further across holes, so filling a hole also shortens the shadows that cross it. A wall or the edge of the board just cuts a shadow short, but a block whose shadow has nowhere to land cannot fall.",
          "A block may only fall if its whole shadow lands in holes. The board shows this before you click: those holes turn purple, and a shadow that would be refused is drawn dotted.",
          "Leave the board flat, with no holes and no blocks, to clear the level. Every turn of the light and every click uses up a bit of the white bar under the board; when it runs out the board flashes red and the run ends, and a reset starts the level again with a full bar.",
          "Later levels add holes two deep that need a fall from each side, short blocks that can fall two ways where only one leaves the right run of holes for a tall block, and walled rooms that all share one light."
        ],
        "special": "You never push a block: you aim the light, and the shadows decide where everything lands, so one turn of the light re-aims every block in every room at once. The shadow doubles as a preview that keeps changing as holes fill. Every turn of the light and every click costs one step of a white bar under the board, so wasted turns add up; a board you have ruined plays on until the bar runs dry.",
        "look": "Yellow lit rooms on black, green blocks marked with one white die face for their height, blue holes with a white die face on every square for their depth, and a yellow wedge on the edge of the screen for the light. A fall sweeps green down the shadow into the holes, and a refused block blinks a red outline.",
        "vsPublic": "None of the public write-ups describes a light or shadows. The nearest are KA59, where you knock pieces into frames they fit, and BP35, where a red block flips which way the world pulls you. ST01 never moves a piece by hand: its one direction control re-aims every block on the board at once and decides where each one will land.",
        "markSaid": ""
      }
    },
    {
      "id": "bc01",
      "class_name": "G006",
      "path": "games/bc01.py",
      "sha256": "d1bb487b437c0821f1108ef858d014f7dea9bbd5afe3725139b38ba3afd6d0b3",
      "levels": 8,
      "human": {
        "actions": 192,
        "levels": 4
      },
      "preview": "previews/bc01.png",
      "media": {
        "play": "previews/bc01.png",
        "levels": "previews/bc01-levels.png"
      },
      "tiles": 8,
      "inputs": [
        1,
        2,
        3,
        4,
        5
      ],
      "play": "https://arc3.sonpham.net/games/g006"
    },
    {
      "id": "gt01",
      "class_name": "G001",
      "path": "games/gt01.py",
      "sha256": "68c5abca5ff9fab9ad8816c6def8b633865c5a6019f878701a749d056c612600",
      "levels": 8,
      "human": {
        "actions": 113,
        "levels": 3
      },
      "preview": "previews/gt01.png",
      "media": {
        "play": "previews/gt01.png",
        "levels": "previews/gt01-levels.png"
      },
      "tiles": 8,
      "inputs": [
        1,
        2,
        3,
        4,
        5
      ],
      "play": "https://arc3.sonpham.net/games/g001"
    },
    {
      "id": "eh01",
      "class_name": "Eh01",
      "path": "games/eh01.py",
      "sha256": "7836bb714bcd27c8db693e0fa222c0145315d8ecbebdeaa43f695fdc087fab15",
      "levels": 8,
      "human": {
        "actions": 836,
        "levels": 8
      },
      "preview": "previews/eh01.png",
      "media": {
        "play": "previews/eh01.png",
        "levels": "previews/eh01-levels.png"
      },
      "tiles": 8,
      "inputs": [
        1,
        2,
        3,
        4,
        5
      ],
      "play": "https://arc3.sonpham.net/games/eh01",
      "spoiler": {
        "teaser": "Eroding Horizons. Every peek with your lantern wears away the floor you need to get back.",
        "hard": "You can't see what a square holds until you step off it, and every look wears out the floor you need to get home. The budget is the map. A bot that explores freely, the way it can in other games, burns its own way back. The hidden information is the point.",
        "rules": [
          "You walk a small blue creature through corridors cut into rock with the arrow keys. You can see the shape of the corridors but not what any square holds, and stepping onto a square never shows you what is there.",
          "Space is your lantern. Right after you step onto a dark square, space lights the square you are standing on and steps you back onto the one you came from, showing whether it held a key, the exit ring, a pit or nothing. On ground that is already lit, space does nothing.",
          "Every look burns one of the two orange marks on the square you step back onto. When its last mark goes it becomes a crossed orange scar: you can step off it but never back on, so the order you explore in decides the level. The entrance never wears out.",
          "Lighting a key sends it flying into a slot along the top. When every slot is full the ring turns from pink to pale blue. You have to light the ring itself too, then walk in.",
          "Pits look like any other dark square. Step onto one and then walk off it in any direction, even back the way you came, and you fall back to the entrance. Press space on it instead and you step back safely; either way the pit is lit and can never be entered again.",
          "Level one has no marks. Later levels add pits, a loop and thin ground that holds only one mark. Every step and every look uses up a bit of the white bar under the key slots; when the bar runs out, the creature turns red, the corridor fills in with rock and the run ends. A reset starts the level again with a full bar."
        ],
        "special": "Seeing and spending are the same move: the only way to learn what a square holds is to back off it, and backing off wears down the floor you land on. The budget is written into the corridor itself, so every square you peek into costs ground you may need to cross later. A pit only sends you home, but a mark spent in the wrong place can leave you stuck until the step bar runs out.",
        "look": "Corridors are cut through deep maroon rock. Unknown ground is purple under a black stipple and lit ground is flat green, both with orange marks in the top corners, a spent square is a crossed orange scar, and ground you can no longer reach fills in with rock. Keys fly up yellow into dark slots along the top beside a ring that is pink when shut and pale blue when open, a lit pit is a pink rim around a black hole, and every look is animated: the creature slides back, the square flares white and the mark burns red.",
        "vsPublic": "LS20 also has a key and a door, but you reshape one key on tiles in plain sight, and its fog only arrives on the final level, where you can still see everything near you; in EH01 nothing a square holds shows until you step back off it. G50T’s fifth action walks you back to the start and leaves a ghost that replays your moves, and SK48’s undo is free; in EH01 stepping back is the only way to see, and each step back costs a mark on the floor. That floor is the whole budget, where LS20 and TU93 count your steps on a bar.",
        "markSaid": "You have to discover where the keys are. It’s kind of a little bit like Minesweeper. … I think this is probably a perfect training game."
      }
    },
    {
      "id": "wf02",
      "class_name": "Wf02",
      "path": "games/wf02.py",
      "sha256": "42e9ae413979df8ddc49856552b0996a668d05028b22891a5d3bd61d13127735",
      "levels": 8,
      "human": null,
      "preview": "previews/wf02.png",
      "media": {
        "play": "previews/wf02.png",
        "levels": "previews/wf02-levels.png"
      },
      "tiles": 8,
      "inputs": [
        5,
        6
      ],
      "play": "https://arc3.sonpham.net/games/wf02",
      "spoiler": {
        "teaser": "Water Flip. One lever flips every pipe. Fill each tank to the line.",
        "hard": "One lever flips every pipe of a colour at once, so each click is a decision about a whole circuit. After each match the marks move but the water stays, so how you finish one delivery sets up the next. Same idea as DC22's switch: one control changes many pieces.",
        "rules": [
          "A row of black tanks holds blue water in stacked blocks, and white dashes in each tank mark how full it should be.",
          "Pipes arch over the tanks with a wheel on top of each. Click a wheel to pour one block along that pipe, or two if the pipe has a stripe down its middle. The wheel shows one or two blocks of water on the side it will leave from.",
          "Press space or click the lever at the bottom to reverse every pipe of that colour at once. From level 5 the pale pipes with white wheels get a second lever, and only a click moves it.",
          "A pour is refused when the tank it drains holds less than the pipe carries, or the tank it fills has no room. The wheel turns red and shakes, and the tank in the way gets a red rim.",
          "When every tank sits exactly on its marks, a dot at the top turns green and new marks appear, with the water left where it is. Finish every dot to clear the level. A yellow column at the left edge loses one block for every press or click, misses included; if it runs out first, the run is lost, and a reset starts the level again with it full.",
          "Later levels add short tanks that hold only two blocks, two-block pipes, a high pipe that joins the end tanks into a ring, nearly full tanks and up to four deliveries."
        ],
        "special": "A pipe does not set its own direction: one lever turns every pipe of its colour around at once, so each pour is really a choice of which way a whole circuit runs, and from level 5 two circuits turn separately. The marks change after every match but the water stays put, so the way you finish one delivery sets up the next. Pipe and tank sizes do the rest: a tank fed only by two-block pipes can only ever change by two, and a small tank fills fast and refuses more until you pass water on.",
        "look": "A flat purple field with black tanks of stacked blue water, orange pipes arching overhead, and fat yellow wheel buttons that show water waiting behind a black gate on the side it will leave. A pour lights up the whole pipe, runs a white pulse along it and lands the block with a white flash, and a tank that matches turns its marks and the lamp underneath it green.",
        "vsPublic": "VC33 is the closest: it also moves liquid between tanks by clicking, but every wall there has a pump on each side, so each click picks its own direction, the goal is a single finished board, and a click budget can lose the level. WF02 hands direction to a lever shared by a whole circuit, moves loads of one or two blocks, can carry water round a ring, chains up to four sets of marks with the water carried over, and like VC33, has a click budget that ends the run when it runs out. SP80 also pours, but there you place bars to steer falling liquid into cups instead of sharing out a fixed amount of water between tanks.",
        "markSaid": ""
      }
    },
    {
      "id": "jt01",
      "class_name": "De48",
      "path": "games/jt01.py",
      "sha256": "be973c15bbc9f988a35979e99e4ec2e5bdaf4938d6f78aa17d597c1adcaf46eb",
      "levels": 8,
      "human": {
        "actions": 124,
        "levels": 4
      },
      "preview": "previews/jt01.png",
      "media": {
        "play": "previews/jt01.png",
        "levels": "previews/jt01-levels.png"
      },
      "tiles": 8,
      "inputs": [
        1,
        2,
        3,
        4,
        5
      ],
      "play": "https://arc3.sonpham.net/games/de48"
    },
    {
      "id": "cl01",
      "class_name": "Cu64",
      "path": "games/cl01.py",
      "sha256": "de17b03ab5e753f23b637d78fb3dfc49b866e475bf18cd9ad1c37136f5a09deb",
      "levels": 8,
      "human": {
        "actions": 57,
        "levels": 2
      },
      "preview": "previews/cl01.png",
      "media": {
        "play": "previews/cl01.png",
        "levels": "previews/cl01-levels.png"
      },
      "tiles": 8,
      "inputs": [
        5,
        6
      ],
      "play": "https://arc3.sonpham.net/games/cu64"
    },
    {
      "id": "cr01",
      "class_name": "Cr01",
      "path": "games/cr01.py",
      "sha256": "9ad854fa9521c562d8ff170614b9f819a86ce7a1c448a9541fd62726cc6714a3",
      "levels": 8,
      "human": {
        "actions": 38,
        "levels": 2
      },
      "preview": "previews/cr01.png",
      "media": {
        "play": "previews/cr01.png",
        "levels": "previews/cr01-levels.png"
      },
      "tiles": 8,
      "inputs": [
        1,
        2,
        3,
        4
      ],
      "play": "https://arc3.sonpham.net/games/cr01"
    },
    {
      "id": "dw01",
      "class_name": "Dw01",
      "path": "games/dw01.py",
      "sha256": "d6fc5d08049d3cc2705aa0c138a10da5296467887453c8193862900943a42649",
      "levels": 8,
      "human": {
        "actions": 42,
        "levels": 2
      },
      "preview": "previews/dw01.png",
      "media": {
        "play": "previews/dw01.png",
        "levels": "previews/dw01-levels.png"
      },
      "tiles": 8,
      "inputs": [
        1,
        2,
        3,
        4,
        5
      ],
      "play": "https://arc3.sonpham.net/games/dw01"
    },
    {
      "id": "ds01",
      "class_name": "G008",
      "path": "games/ds01.py",
      "sha256": "787ccaace5803b5a0e93f10a7dbcff7f2289bbd34a5e891be6f2a36d7dfad3a4",
      "levels": 7,
      "human": {
        "actions": 201,
        "levels": 4
      },
      "preview": "previews/ds01.png",
      "media": {
        "play": "previews/ds01.png",
        "levels": "previews/ds01-levels.png"
      },
      "tiles": 7,
      "inputs": [
        1,
        2,
        3,
        4,
        5
      ],
      "play": "https://arc3.sonpham.net/games/g008"
    },
    {
      "id": "mg01",
      "class_name": "G012",
      "path": "games/mg01.py",
      "sha256": "e8bcbe1d781ae2ddf669230e6cf190ef9d73838879b97fa6d7d29288fe6a59db",
      "levels": 8,
      "human": {
        "actions": 251,
        "levels": 7
      },
      "preview": "previews/mg01.png",
      "media": {
        "play": "previews/mg01.png",
        "levels": "previews/mg01-levels.png"
      },
      "tiles": 8,
      "inputs": [
        1,
        2,
        3,
        4,
        5
      ],
      "play": "https://arc3.sonpham.net/games/g012"
    },
    {
      "id": "rt01",
      "class_name": "G007",
      "path": "games/rt01.py",
      "sha256": "0d979c40c841912b83a4e1499af29dd60700564d2517eb661b53779d9620c143",
      "levels": 8,
      "human": {
        "actions": 154,
        "levels": 3
      },
      "preview": "previews/rt01.png",
      "media": {
        "play": "previews/rt01.png",
        "levels": "previews/rt01-levels.png"
      },
      "tiles": 8,
      "inputs": [
        1,
        2,
        3,
        4,
        5,
        6
      ],
      "play": "https://arc3.sonpham.net/games/g007"
    },
    {
      "id": "fr01",
      "class_name": "Fr01",
      "path": "games/fr01.py",
      "sha256": "22a277a72f66bdd9fad3e9d5d774e26d72a7025ae714b197986446fba0fc6318",
      "levels": 5,
      "human": {
        "actions": 193,
        "levels": 1
      },
      "preview": "previews/fr01.png",
      "media": {
        "play": "previews/fr01.png",
        "levels": "previews/fr01-levels.png"
      },
      "tiles": 5,
      "inputs": [
        1,
        2,
        3,
        4,
        6
      ],
      "play": "https://arc3.sonpham.net/games/fr01"
    },
    {
      "id": "fg01",
      "class_name": "Fg01",
      "path": "games/fg01.py",
      "sha256": "d6acb49b39d22901474bf4b047c358c1556f9796702f60be39fb60257e4935c0",
      "levels": 12,
      "human": {
        "actions": 1219,
        "levels": 5
      },
      "preview": "previews/fg01.png",
      "media": {
        "play": "previews/fg01.png",
        "levels": "previews/fg01-levels.png"
      },
      "tiles": 12,
      "inputs": [
        1,
        2,
        3,
        4,
        5,
        6
      ],
      "play": "https://arc3.sonpham.net/games/fg01"
    },
    {
      "id": "wc01",
      "class_name": "Es81",
      "path": "games/wc01.py",
      "sha256": "493c6195accce5fad91366676874b36e0f023c9098f89af7af409941bc2d2eb8",
      "levels": 8,
      "human": {
        "actions": 80,
        "levels": 5
      },
      "preview": "previews/wc01.png",
      "media": {
        "play": "previews/wc01.png",
        "levels": "previews/wc01-levels.png"
      },
      "tiles": 8,
      "inputs": [
        5,
        6
      ],
      "play": "https://arc3.sonpham.net/games/es81"
    },
    {
      "id": "ba01",
      "class_name": "Ab02",
      "path": "games/ba01.py",
      "sha256": "64ecf75b547c1b81df666b07abb6c4a814492f640490ff6f7d254dce3d39c58c",
      "levels": 10,
      "human": {
        "actions": 16,
        "levels": 1
      },
      "preview": "previews/ba01.png",
      "media": {
        "play": "previews/ba01.png",
        "levels": "previews/ba01-levels.png"
      },
      "tiles": 10,
      "inputs": [
        1,
        2,
        3,
        4
      ],
      "play": "https://arc3.sonpham.net/games/ab02"
    },
    {
      "id": "bl01",
      "class_name": "Bl01",
      "path": "games/bl01.py",
      "sha256": "f215d920aadec13ec801b4a31ef9f025f69cee8817862a38dad82d988ff97d2b",
      "levels": 8,
      "human": {
        "actions": 38,
        "levels": 1
      },
      "preview": "previews/bl01.png",
      "media": {
        "play": "previews/bl01.png",
        "levels": "previews/bl01-levels.png"
      },
      "tiles": 8,
      "inputs": [
        1,
        2,
        3,
        4,
        5,
        6,
        7
      ],
      "play": "https://arc3.sonpham.net/games/bl01",
      "spoiler": {
        "teaser": "Basket Lift. Get the fruit to the basket on lifts that weigh you.",
        "hard": "Down doesn't mean down. It tips the scale: you stand on a pan, the lighter side goes up and the heavier side goes down, and you count as one block while every fruit you carry adds two or three. On the first level you rise when your hands are empty and sink once you're holding an apple. Later the Up key flips gravity and a lever turns blue crystal blocks solid. A bot that mashes the arrow keys never works out that the weights are doing the moving.",
        "rules": [
          "Left and right walk the farmer one square at a time. He stays on the ground, ledges and pans, and can't step off an edge into the air.",
          "Space picks up a fruit next to him, or drops what he's carrying into the basket when he's next to it. With empty hands beside the basket, Space takes a banked fruit back out, heaviest first. Clicking a fruit, the basket or the lever does the same job.",
          "Down is the lift. The lifts are pairs of pans hung over pulleys, with grey weight blocks hanging under one side. Press Down while standing on a pan and the scale tips one step: the heavier side sinks, the lighter side rises, and if they match nothing moves. The farmer weighs one block, a carried fruit adds two or three, and the grey blocks count too.",
          "A bar along the bottom is your allowance, 320 presses a level. Every press spends one, refused moves included. Empty the bar and you've lost the level. Undo puts the scene back but not the press.",
          "On levels four, five, seven and eight, Up flips gravity, so the farmer falls toward the ceiling and walks it. A small leaf on the right edge shows which way is down.",
          "From level six there is a lever and blue crystal blocks. Flip the lever and the crystals go solid: pans, the farmer and fruit can't pass through them, and a fruit inside one can't be picked up. Flip it again and they're gone. The lever won't flip if a crystal would land on you or on a pan.",
          "Clear a level by getting every fruit into the basket with your hands empty."
        ],
        "special": "Fruit is cargo and ballast at once. What you hold changes which way the lift takes you, and the basket doubles as a place to park weight and take it back out when you need it. Then gravity and the crystals change what you can stand on and what is in the way.",
        "look": "A white sky over a green-topped maroon ground. Orange ropes run over little pulley wheels to flat orange pans, with grey weight blocks hanging under one side. Red fruit and heavier orange ones sit on green-topped ledges, an orange woven basket waits on the ground, and the farmer is small, in a yellow hat and a blue shirt. Later levels add a ceiling beam, a leaf that shows gravity, a lever and light blue crystal blocks. A row of grey pips along the top marks the level, and the orange bar along the bottom is your allowance."
      }
    },
    {
      "id": "co01",
      "class_name": "Co01",
      "path": "games/co01.py",
      "sha256": "60989ab774d6514e8195f0eb8879f3212f4582c5fbc02506e490cd74a87e49ed",
      "levels": 8,
      "human": null,
      "preview": "previews/co01.png",
      "media": {
        "play": "previews/co01.png",
        "levels": "previews/co01-levels.png"
      },
      "tiles": 8,
      "inputs": [
        1,
        2,
        3,
        4,
        5,
        7
      ],
      "play": "https://arc3.sonpham.net/games/co01"
    },
    {
      "id": "er01",
      "class_name": "Db11",
      "path": "games/er01.py",
      "sha256": "afdb7f4a0b59836a79ee19618064711da3e6b60b821f3f4eace655b3031a6ba6",
      "levels": 9,
      "human": {
        "actions": 7,
        "levels": 1
      },
      "preview": "previews/er01.png",
      "media": {
        "play": "previews/er01.png",
        "levels": "previews/er01-levels.png"
      },
      "tiles": 9,
      "inputs": [
        1,
        2,
        3,
        4,
        5
      ],
      "play": "https://arc3.sonpham.net/games/db11"
    },
    {
      "id": "es01",
      "class_name": "Es01",
      "path": "games/es01.py",
      "sha256": "3e28fd3a674b426b66bfb11b922cc1a886bb36de11f1b3616c1063e3aede87ff",
      "levels": 8,
      "human": {
        "actions": 44,
        "levels": 1
      },
      "preview": "previews/es01.png",
      "media": {
        "play": "previews/es01.png",
        "levels": "previews/es01-levels.png"
      },
      "tiles": 8,
      "inputs": [
        1,
        2,
        3,
        4,
        5,
        6
      ],
      "play": "https://arc3.sonpham.net/games/es01",
      "spoiler": {
        "teaser": "Extreme Sneeze. Spread the alien outbreak to win.",
        "hard": "Every person you infect is a new body you can jump into, so who you are keeps changing. Doctors cure your work and guards shoot the alien. A bot loses track of which piece is it. Like SK48, where you click between two rods, but here there can be a whole crowd.",
        "rules": [
          "On level one you are a small green alien. Arrow keys walk, and space sneezes a short fan of green droplets straight ahead and out to both forward diagonals. Walls and the first person in each line stop it; vent grilles do not.",
          "The alien’s sneeze is weak: a person needs three hits, and a green spot appears on their face with each one. The first person the alien fully infects becomes the body you play. From level two you start each level already inside an infected person, and the alien follows you on its own, sneezing at any healthy person lined up close to it.",
          "Your host’s sneeze infects anyone it reaches in one hit, and each new victim sneezes onward the same way straight away, so a lined-up crowd falls like dominoes. From level two each host sneeze spends one of the magenta spore dots beside you, and every new infection gives one back until the stack is full. With none left, space does nothing.",
          "Click any infected person on screen to jump into them. Walking into a vent grille also jumps you if an infected person stands just past it; grilles stop feet but let sneezes through. From level two most people pace slowly back and forth, and the ones you leave behind now and then give a weak cough toward their nearest healthy neighbour.",
          "Level one needs two infections. From level two you must infect everyone, guards and doctors included. Guards in maroon and red arrive on level three: they walk toward the alien, and once lined up with it in a clear straight line they flash yellow, then shoot a piece off it. If the whole alien is shot away you lose, and infecting a guard stops it.",
          "Doctors in white arrive on level four. They cure sick people close by, and if they cure your host you are back in the alien. When no one sick is near, they wall up doorways with white walls that stop both feet and sneezes. Only your host’s full sneeze chips those walls, and it takes two. Every board after the first is bigger than the screen and scrolls with you."
        ],
        "special": "You don’t win by walking a path. You aim an outbreak: one well-placed sneeze down a line of people chains across a room, and every person you turn becomes another body you can jump into. The board fights back with its own cast: doctors undo your work and wall up doorways, and guards shoot the alien apart a piece at a time.",
        "look": "Four city places, each with its own floor markings and frame colour: a street with dashed lanes, a market with orange and maroon stalls, a grey-tiled clinic with pale blue fittings and a transit platform with yellow safety studs. People in coloured clothes turn green with magenta eyes when infected, doctors wear white and guards maroon and red, the alien is green with antennae, black-and-white eyes and a magenta mouth, and a green wipe sweeps the screen on every win.",
        "vsPublic": "SK48 lets you click between two rods from level six, and WA30’s thief pulls finished crates back out of their bays. In ES01 every person you infect is another body to click into, while doctors cure them and guards shoot the alien. The nearest public spread is BP35’s purple, which grows into the empty squares around a clicked block, but that spreads scenery: we found no public game where a state passes from one character to the next, and like BP35, ES01’s boards are bigger than the screen with a view that follows you.",
        "markSaid": ""
      }
    },
    {
      "id": "ff01",
      "class_name": "Ff01",
      "path": "games/ff01.py",
      "sha256": "c8d1b34a862134458ad2be8baaab0a72beaba2cdc5f33fa3c25040c2fe6a2903",
      "levels": 8,
      "human": null,
      "preview": "previews/ff01.png",
      "media": {
        "play": "previews/ff01.png",
        "levels": "previews/ff01-levels.png"
      },
      "tiles": 8,
      "inputs": [
        1,
        2,
        3,
        4
      ],
      "play": "https://arc3.sonpham.net/games/ff01",
      "spoiler": {
        "teaser": "Feeding Frenzy. Eat the small fry, ride the tide, grow big.",
        "hard": "One tide moves every fish and current at once, on a beat, and a yellow dot shows each next move. Size decides who eats who, and you grow. A bot has to plan several beats ahead instead of dodging. It borrows AS66's always-changing direction and BP35's pull across a world bigger than the screen.",
        "rules": [
          "You are the green fish. You swim with the arrow keys through a sea bigger than the screen, and the view follows you.",
          "Touch a fish your size or smaller to eat it. Colour shows size: orange is smallest, then pink, magenta, red and maroon. Eat enough to fill the meal pips and the level clears; from level two, a few meals also make you grow a size.",
          "Bigger fish bite and cost one of your three lives, then you blink safe for a moment. They never chase you; each one just swims its own pattern.",
          "The lighter water is current. It carries you and every other fish, and you can never swim against it: at best you hold still.",
          "Every few moves the tide turns (the yellow pips at top right count down to it), and every current and every other fish changes heading. A yellow dot on each current’s arrows and on each other fish shows which way it goes next, and every other fish that is off the screen shows as a small mark in its colour on the screen’s edge, food and danger alike.",
          "From level two a time bar runs down, and running out or losing your last life ends the run. Later levels bring more currents, more fish and bigger ones, and on the last two levels you can grow big enough to eat even the largest fish."
        ],
        "special": "The whole sea runs on one tide: every current and every fish turns together on a beat you can count, and a yellow dot on each shows where it goes next. Since no current can be swum against, crossing the sea means catching the right ride at the right moment, so you plan a few moves ahead instead of only dodging. The bigger fish never chase, so the dots never lie, and growing turns fish that could bite you into food.",
        "look": "A flat blue sea with lighter current lanes full of drifting white arrows, a purple sea bed with swaying kelp and rising bubble streams, and white crests on the surface. The fish have forked tails, fins and a white eye, coloured by size from orange up to maroon, with you in green. A meal pops a ring of bubbles, and clearing a level makes your fish spin and rise in a shower of them.",
        "vsPublic": "BP35 is the closest: it also scrolls and carries you with a pull you cannot refuse, but its pull runs one way across the whole level, slides you until something solid stops you, and you flip it yourself by clicking. FF01’s sea has many currents that push a set distance each move, carry every fish, and all turn together on one tide clock, with each next heading shown ahead of time. In TU93, whether you or its red enemy dies depends on which way that enemy faces; here it depends on size, and your size grows as you eat.",
        "markSaid": ""
      }
    },
    {
      "id": "si01",
      "class_name": "G011",
      "path": "games/si01.py",
      "sha256": "df505dbe7e380c34b96a389ba6569e2bcbc5c08c8328bb5bfbe28c7dfb6cac69",
      "levels": 9,
      "human": {
        "actions": 140,
        "levels": 2
      },
      "preview": "previews/si01.png",
      "media": {
        "play": "previews/si01.png",
        "levels": "previews/si01-levels.png"
      },
      "tiles": 9,
      "inputs": [
        1,
        2,
        3,
        4,
        7
      ],
      "play": "https://arc3.sonpham.net/games/g011"
    },
    {
      "id": "bk01",
      "class_name": "G015",
      "path": "games/bk01.py",
      "sha256": "b013818374d96795b93ce4282fb27f907336427524f007166f933238b021492b",
      "levels": 8,
      "human": null,
      "preview": "previews/bk01.png",
      "media": {
        "play": "previews/bk01.png",
        "levels": "previews/bk01-levels.png"
      },
      "tiles": 8,
      "inputs": [
        1,
        2,
        3,
        4,
        5
      ],
      "play": "https://arc3.sonpham.net/games/g015"
    },
    {
      "id": "wt01",
      "class_name": "G018",
      "path": "games/wt01.py",
      "sha256": "92f92db2dde93063d08a8eb60070874a33f817b774c70a64a6c820659c3108f9",
      "levels": 7,
      "human": null,
      "preview": "previews/wt01.png",
      "media": {
        "play": "previews/wt01.png",
        "levels": "previews/wt01-levels.png"
      },
      "tiles": 7,
      "inputs": [
        1,
        2,
        3,
        4
      ],
      "play": "https://arc3.sonpham.net/games/g018"
    },
    {
      "id": "bs01",
      "class_name": "Bs01",
      "path": "games/bs01.py",
      "sha256": "350877d357d24408af7f773b672a7b389c644d3e3e3842f3798f82ea589c4953",
      "levels": 8,
      "human": null,
      "preview": "previews/bs01.png",
      "media": {
        "play": "previews/bs01.png",
        "levels": "previews/bs01-levels.png"
      },
      "tiles": 8,
      "inputs": [
        1,
        2,
        3,
        4
      ],
      "play": "https://arc3.sonpham.net/games/g019",
      "spoiler": {
        "teaser": "Bell Stealth. Ring the bells to drive the guards onto the pads, and don't get caught.",
        "hard": "You never touch the guards. You herd them by choosing which bell to ring, and they also hold the plates down and kill you if you stand beside them. Pips flow between neighbours by height, and you only get so many moves on each level, shown as the yellow bar along the bottom. In the family of G50T, where something other than you holds the plate and can catch you.",
        "rules": [
          "You are the black figure. The arrow keys move you one square; there is no other control and no undo, and every press is a turn, even walking into a wall or the edge, which is how you wait. Every press also uses up one step of the yellow bar along the bottom; when it runs out you fall and the run ends, and a reset gives you a full bar.",
          "Step on a bell to ring it. From then on every red guard walks one square per turn toward the bell you rang last by a shortest route, waiting in line if another guard is in the way; in the first two levels the pad is itself a bell.",
          "A guard that ends a turn on your square or right beside you, though not diagonally, catches you and the run ends; a reset restarts the level. Pink checks mark every square where that would happen next turn.",
          "Each guard carries pips, shown in white on its belly like a die face, and each plain round pad shows in black pips how many it needs; the bell pads of the first two levels need one. A guard carrying at least that many lights the pad it stands on, and while every pad is lit the door opens and you walk in to win.",
          "The hidden rule: pips spill between guards standing side by side, though not diagonally. When one guard’s pips plus its ground height are two or more above its neighbour’s, one pip hops across, so ground matters: blue is low, green is middle, and the yellow blocks under the bells are high.",
          "Later levels add more guards and pads, sunken blue ground you can still walk on, a rock wall with one gap and a dead-end corridor with the bell at its far end."
        ],
        "special": "The guards are both the danger and the only way through: you never touch them, you herd the whole group at once by choosing which bell to ring and when, and they open the door for you by standing on the pads. Their pips behave like water finding its level, running from the guard that stands taller, counting pips and ground together, to the one beside it; without that flow, or with the ground made flat, most levels cannot be won. Each level gives you about twice the moves the shortest route needs, shown as a yellow bar along the bottom; run it dry and you fall.",
        "look": "An early home-console cartridge look: flat saturated colors with hard black edges, ground in three heights (blue low, green middle, yellow high), purple brick for walls and the border, red horned guards that face the way they will step, orange bells on yellow blocks, round light-blue pads, a maroon door and a small black figure for you. The bell you rang last turns white, a held pad glows white, the border turns white when the door opens and red when you are caught or fall, a yellow bar in the bottom border shrinks by one dot with every move, you turn pink and crumple, and a pip is drawn flying from one guard to the next when it spills.",
        "vsPublic": "Closest are WA30, where helpers take a step every time you act and haul crates into bays on their own routine, and G50T, where a ghost copy of you holds a plate down while patrols kill you if they land on your square. Here the plate-holders are the same creatures that kill you, standing beside one is as deadly as standing on it, and you steer them only by which bell you rang last. VC33 moves liquid between tanks, but only when you click a pump; here the pips pass between neighbouring guards on their own, by count and ground height together.",
        "markSaid": ""
      }
    },
    {
      "id": "cg01",
      "class_name": "G025",
      "path": "games/cg01.py",
      "sha256": "7e3b5a0822f2290a9f018bea9b7f30f938ba558d03a71c8ab76e10c6706ca56e",
      "levels": 8,
      "human": null,
      "preview": "previews/cg01.png",
      "media": {
        "play": "previews/cg01.png",
        "levels": "previews/cg01-levels.png"
      },
      "tiles": 8,
      "inputs": [
        1,
        2,
        3,
        4,
        5,
        6
      ],
      "play": "https://arc3.sonpham.net/games/g025"
    },
    {
      "id": "cc01",
      "class_name": "G026",
      "path": "games/cc01.py",
      "sha256": "ab5abdf231e9ed8300c6b86c6f78c4f8084f360d0d3c5821bde892ad337b2b9e",
      "levels": 7,
      "human": null,
      "preview": "previews/cc01.png",
      "media": {
        "play": "previews/cc01.png",
        "levels": "previews/cc01-levels.png"
      },
      "tiles": 7,
      "inputs": [
        1,
        2,
        3,
        4,
        5
      ],
      "play": "https://arc3.sonpham.net/games/g026"
    },
    {
      "id": "mp01",
      "class_name": "G029",
      "path": "games/mp01.py",
      "sha256": "c9d6caeac15cef06db57bf6348b4785c01dcfd169b48aabff78ddb20769a9ae5",
      "levels": 8,
      "human": null,
      "preview": "previews/mp01.png",
      "media": {
        "play": "previews/mp01.png",
        "levels": "previews/mp01-levels.png"
      },
      "tiles": 8,
      "inputs": [
        1,
        2,
        3,
        4,
        5,
        6
      ],
      "play": "https://arc3.sonpham.net/games/g029"
    },
    {
      "id": "kt01",
      "class_name": "G036",
      "path": "games/kt01.py",
      "sha256": "a7b99200a65832a11436fb38527d805811f3964b5130d594b7e3cf439db6f515",
      "levels": 10,
      "human": null,
      "preview": "previews/kt01.png",
      "media": {
        "play": "previews/kt01.png",
        "levels": "previews/kt01-levels.png"
      },
      "tiles": 10,
      "inputs": [
        1,
        2,
        3,
        4,
        5,
        7
      ],
      "play": "https://arc3.sonpham.net/games/g036",
      "spoiler": {
        "teaser": "Knot Tying. Lay a cord over and under, then pull the knot tight.",
        "hard": "You only find out a knot is wrong when you pull it. Lay the cord, press Space at the finish, and if any crossing has the wrong strand on top the cord snaps back and the run ends; a reset starts the level over. The cord can't touch the same spot twice, it runs straight through crossings, and over or under is decided by which pass came second. So the whole route has to be planned before the first inch goes down. A bot that wanders the slats until it reaches the end will tie the wrong knot.",
        "rules": [
          "The arrow keys lay the cord along the slats from the black start eyelet. It can't leave the slats and can't go back over a spot it already covers.",
          "Space at the purple finish eyelet pulls the cord tight. If every crossing is right the knot holds and you move on. If not, the cord snaps back and the run ends; a reset starts the level again. Space anywhere else does nothing.",
          "Undo takes the cord back one step at a time, as far as the start eyelet, as often as you like, so a dead end never traps you.",
          "At a crossing the cord goes straight through, never turning. Each crossing takes one pass across and one pass up and down, and the second pass is the one that ends up on top.",
          "A blue bar on a crossing says the across strand must end on top. A white bar says the up and down strand must. Every crossing has to be crossed twice, and only the second pass counts.",
          "There are ten levels, from a single winding run with no crossings to a lattice with five."
        ],
        "special": "Over and under isn't a button, it's the order you visit things in. Choosing a route is also choosing which strand ends up on top at every crossing, and the route can never double back on itself.",
        "look": "A green bench cloth with orange wooden slats, rimmed in black, laid out as a lattice. The cord is a light blue strand that turns black where it goes under at a crossing, and its head is purple with a black eye that looks the way it last moved. A black eyelet marks the start and a purple one the finish. Daisies in the corners change with every move and do nothing."
      }
    },
    {
      "id": "fp01",
      "class_name": "G045",
      "path": "games/fp01.py",
      "sha256": "559c8159bd1d37ce0c3d9efdb5cb01a72de0a9d3bc19735e188baff918611a49",
      "levels": 7,
      "human": null,
      "preview": "previews/fp01.png",
      "media": {
        "play": "previews/fp01.png",
        "levels": "previews/fp01-levels.png"
      },
      "tiles": 7,
      "inputs": [
        1,
        2,
        3,
        4,
        5
      ],
      "play": "https://arc3.sonpham.net/games/g045"
    },
    {
      "id": "ap01",
      "class_name": "G050",
      "path": "games/ap01.py",
      "sha256": "02a3a5cac49663734d842bc25d51b7200b0b59e546c25cd27937ccf750946d59",
      "levels": 9,
      "human": null,
      "preview": "previews/ap01.png",
      "media": {
        "play": "previews/ap01.png",
        "levels": "previews/ap01-levels.png"
      },
      "tiles": 9,
      "inputs": [
        1,
        2,
        3,
        4
      ],
      "play": "https://arc3.sonpham.net/games/g050"
    },
    {
      "id": "pt01",
      "class_name": "Pt01",
      "path": "games/pt01.py",
      "sha256": "73c4ea67623441729fff6fb039c7b47bed55a473cfde1e9aeaa86a234c9a1873",
      "levels": 8,
      "human": {
        "actions": 373,
        "levels": 8
      },
      "preview": "previews/pt01.png",
      "media": {
        "play": "previews/pt01.png",
        "levels": "previews/pt01-levels.png"
      },
      "tiles": 8,
      "inputs": [
        1,
        2,
        3,
        4,
        5
      ],
      "play": "https://arc3.sonpham.net/games/pt01",
      "spoiler": {
        "teaser": "Perfect Target. You are a ship shooting at other ships.",
        "hard": "You can only hurt a ship from behind. Hit a bow or side and the shot bounces back and costs you a heart. Enemy guns fire on a beat down lanes you have to read one press ahead. A bot that shoots whatever is in front of it dies fast, because it has to work out that facing matters. Same family as SC25's fireball and TU93's head-on killer.",
        "rules": [
          "You sail the black ship one square at a time with the arrow keys and fire with space; the ball flies straight ahead along the dotted line from your bow, and pressing toward land or a ship turns you to face it without moving.",
          "Sink every enemy ship to clear the level, but only a ship’s stern, the end with the yellow lamps, can be hurt: you must get behind it, facing the way it faces, and each hit puts out one lamp.",
          "A ball that strikes a bow or a side bounces straight back and costs you one of three hearts; the aim line turns pink before you fire to warn you.",
          "Enemy ships never sail, but every press, even a bump or a shot, is one beat of a fixed clock, and gunships fire on a set rhythm: the gun turns orange two presses before a shot, then red with a red dashed lane one press before, and since your move lands before the shot, stepping out of the lane on that press keeps you safe.",
          "Your ball stops at the first ship in its path, so one ship can shield another from you, and islands and ships stop enemy fire too, so they can shield you; lose all three hearts and your ship sinks and the run ends; a reset starts the level again exactly as it began, same rhythm.",
          "Level 1 cannot be lost; later levels add bouncing shots, gunships, two gunships on different beats, ships that turn a quarter on a timer (the tip of the bow turns white one press before), a frigate firing from both sides, and finally a galleon that fires from its bow and both sides."
        ],
        "special": "Every ship is armoured except its stern, so each target is a question of where to stand and which way to face, and a careless shot hurts you instead. Enemy fire is a fixed pattern drawn one press ahead, and because your move lands before the shot, you read the red lanes and slip between them. Ships also turn on their own beat, so the stern and the gun lanes swing round, and a safe square turns deadly on a rhythm you can learn.",
        "look": "Seen from above: a flat blue sea with small light blue wave crests, yellow sand islands with black shores and green palms, and your black ship with a white sail bar. Enemy hulls are coloured by kind (orange merchant, dark red corvette, purple frigate, magenta galleon) with yellow lamps on a black stern, sunk ships break up inside a spreading ripple, and a black strip below shows your red hearts (from level 2) and one hull icon per ship still afloat.",
        "vsPublic": "The nearest public pieces are TU93’s red enemy, which kills you head-on and dies if you reach it from the side or behind; SC25’s fireball, which flies the way you last moved and just fizzles on anything but its target; and KA59’s bombs, which go off every few presses. In PT01 a shot that strikes a ship’s bow or side bounces back and costs you a heart, so only the stern can be hit, and enemy guns fire at you on fixed beats down lanes drawn one press ahead that islands and other ships block.",
        "markSaid": ""
      }
    },
    {
      "id": "rx01",
      "class_name": "Rx01",
      "path": "games/rx01.py",
      "sha256": "81c6959244c4e04b8cf1f1ee003370f35cba233c847c085ab626a6fb9cedce9d",
      "levels": 8,
      "human": null,
      "preview": "previews/rx01.png",
      "media": {
        "play": "previews/rx01.png",
        "levels": "previews/rx01-levels.png"
      },
      "tiles": 8,
      "inputs": [
        1,
        2,
        3,
        4,
        6
      ],
      "play": "https://arc3.sonpham.net/games/rx01"
    },
    {
      "id": "sf01",
      "class_name": "Sf01",
      "path": "games/sf01.py",
      "sha256": "7c10b37845f0708cfc9c51ec3a236eef5ddf21b9e58f5f38b39d661c9c539d70",
      "levels": 7,
      "human": null,
      "preview": "previews/sf01.png",
      "media": {
        "play": "previews/sf01.png",
        "levels": "previews/sf01-levels.png"
      },
      "tiles": 7,
      "inputs": [
        1,
        2,
        3,
        4,
        5
      ],
      "play": "https://arc3.sonpham.net/games/sf01"
    },
    {
      "id": "ss01",
      "class_name": "Ss01",
      "path": "games/ss01.py",
      "sha256": "873333058bd54b0209c581aa0ce60c93d6997465c61d31ee17c59804a08a9dca",
      "levels": 8,
      "human": {
        "actions": 484,
        "levels": 8
      },
      "preview": "previews/ss01.png",
      "media": {
        "play": "previews/ss01.png",
        "levels": "previews/ss01-levels.png"
      },
      "tiles": 8,
      "inputs": [
        5,
        6,
        7
      ],
      "play": "https://arc3.sonpham.net/games/ss01",
      "spoiler": {
        "teaser": "Shared Supply. Thread the fruit from the tray onto the skewers, in order.",
        "hard": "There's no way to lose and nothing tells you you've got it wrong. The next fruit goes on whichever skewer is selected, right or wrong, and the only sign is a skewer's base turning green when its stack matches. Skewers often start with the same fruits, so which one should take this fruit only matters several fruits later. The whole tray is in plain view, so it's pure planning: a bot that threads greedily ends up with full skewers it has to back out of one fruit at a time.",
        "rules": [
          "Each skewer hangs at the top in a white box showing the stack of fruit it needs, bottom to top. The tray along the bottom holds every fruit you have, in the order it will come.",
          "Click a skewer's base to select it. Space threads the next fruit from the tray onto the selected skewer. Undo takes the last fruit you threaded back off.",
          "A skewer can't take more fruit than its order has. Press Space on a full one and nothing happens.",
          "A fruit goes on whichever skewer is selected, even the wrong one. You win the level when every fruit is threaded and every skewer holds exactly its order.",
          "A skewer's base is orange while its stack is wrong, light blue while it's selected and green once its stack matches.",
          "Early levels hand you each skewer's fruit in a tidy order. Later ones make several orders begin with the same fruits, let some orders close early, bring a fruit back, and make you hold one back for the right skewer."
        ],
        "special": "It's a sorting puzzle where the sorting is the order you do things in. You can see the whole future in the tray, so nothing is hidden. The work is seeing, from the fruit still to come, which skewer this fruit has to go on.",
        "look": "A pale grey room with an orange strip along the top. Each skewer hangs in a white box showing the fruit it needs, with a thin rod below it and a base plate that changes colour. Threaded fruit stacks up the rod. Along the bottom a dark tray winds back and forth, and the fruit you haven't used yet waits in it, in the order it will come. The fruit is small pixel art in red, green, orange, purple, yellow, pink and maroon. Four little blue dots mark where you last clicked and turn red when a press was refused."
      }
    },
    {
      "id": "te01",
      "class_name": "Te01",
      "path": "games/te01.py",
      "sha256": "3b7641014402159aea53e1df4ce9f2536c9d7b84de74ed2667d74b37c2ea317f",
      "levels": 8,
      "human": {
        "actions": 487,
        "levels": 7
      },
      "preview": "previews/te01.png",
      "media": {
        "play": "previews/te01.png",
        "levels": "previews/te01-levels.png"
      },
      "tiles": 8,
      "inputs": [
        1,
        2,
        3,
        4,
        5,
        6,
        7
      ],
      "play": "https://arc3.sonpham.net/games/te01",
      "spoiler": {
        "teaser": "Tethered Extraction. A cable and a pulley.",
        "hard": "Your cable is a fixed length and wraps round posts, so the same route costs more or less depending on which side of each post you pass. Blades cut the cable, not just you. A bot has to plan the whole path before it moves, not feel its way. In the family of SK48, where you carry a length of something and spend it.",
        "rules": [
          "You drive a small green rover with the arrow keys; an orange cable runs from the blue dock to the rover and always pulls tight, bending only at the corners of the posts it wraps around.",
          "Stop beside the blue crystal (not diagonally) or right on top of it, click it to pick it up, then drive back onto the dock to clear the level.",
          "The cable has a fixed length, shown as orange dots on the spool by the dock; a move that needs more is refused and a red mark flashes at the bend holding it back, so the side you passed each post on decides how far you can reach.",
          "Space reels you in one step back along the cable toward its last bend, and undo takes back your last move.",
          "Red blades end the attempt two ways: drive the rover into one, or let the cable touch one as it sweeps behind you, even when the rover itself stays well clear; undo cannot save you then, only reset, which starts the level again.",
          "Levels 1 and 2 have no blades and level 3 brings the first; from level 5 you push a silver cover along an orange rail onto a blade, its stripe turns green as it locks, and then rover and cable can both cross that blade; level 6 bends the rail, and the last two levels add long walls that come alternately from the top and the bottom, with a much longer cable that has to wind back and forth between them."
        ],
        "special": "The cable remembers your route: it is pulled tight around every post it wraps and never gets longer than its spool, so the side you take round each post decides how far you can reach. Blades are a danger to the line as well as the rover, so you plan where the cable will sweep, not just where you drive. Covers pushed along a rail turn a blade into floor you can cross.",
        "look": "A dark workshop floor with faint seams, purple posts (striped on the wider ones, while the long thin walls of the last two levels show as white lines), a small green rover with black wheels, a blue cradle for a dock, a blue crystal, and round red blades with a white rim. The cable is orange, a grey spool by the dock loses orange dots as cable pays out, the rover shows the crystal once it carries it and turns red when a blade gets it, and the cover is a silver hood whose orange stripe turns green when it locks.",
        "vsPublic": "The closest public games are SK48, whose skewer runs straight out of its handle on an energy budget, and TU93 and G50T, where the path you walked comes back as an enemy or a twin. In TE01 you have a fixed length of cable that bends round posts, so how much of it a route uses depends on which side of each post it went, and blades cut that cable as it sweeps, not just the rover.",
        "markSaid": "Awesome game. … Mechanics are great."
      }
    },
    {
      "id": "se01",
      "was": [
        "xb02"
      ],
      "class_name": "Se01",
      "path": "games/se01.py",
      "sha256": "bdfad29e8b956028bc34533fc0de7f54ae9d1c09524ba3677b3766962d8b4104",
      "levels": 6,
      "human": null,
      "preview": "previews/se01.png",
      "media": {
        "play": "previews/se01.png",
        "levels": "previews/se01-levels.png"
      },
      "tiles": 6,
      "inputs": [
        1,
        2,
        3,
        4
      ],
      "play": "https://arc3.sonpham.net/games/xb02",
      "spoiler": {
        "teaser": "Shrine Exploration. Light a shrine and a gate crumbles somewhere you can't see.",
        "hard": "Light a shrine and a gate crumbles somewhere you can't see, and nothing tells you which. You only find out by going back to look. It's DC22's trick, where one click rewrites the floor anywhere on the board, but hidden and far away.",
        "rules": [
          "You walk a hooded pilgrim along yellow tracks with the arrow keys, through a countryside several screens wide and tall. You start beside the sanctum; open its barred door and walk in to clear the level.",
          "Four shrines stand in the four corners. Step onto a shrine’s brazier and every gate of one colour, anywhere in the world, crumbles for the rest of the level.",
          "No shrine shows which colour it opens, but that never changes: top-left opens red, top-right blue, bottom-left purple, bottom-right light grey. The sanctum door is a gate too, and its colour changes from level to level.",
          "The gates decide which shrines you can reach, so each level hides an order. The land is the same in every level; only the gates and the patrols change. Until the last two levels some shrines open nothing, and the last two need all four.",
          "Walk into a magenta thorn bush, or let a magenta horned patrol step onto you, and the run is over; reset to start the level again. Patrols pace short stretches of track from level two on, one step for each move you make; the flowers are harmless, even the magenta ones.",
          "A bar under the world shows the moves you have left for the level. It shrinks with every move, bumps included, and when it runs out the run is over. Lit shrines stay lit. Bumping into a wall or a shut gate still lets the patrols take their step, which is how you wait for one to pass, but it costs a move."
        ],
        "special": "Lighting a shrine changes the world somewhere you cannot see, and nothing tells you what changed: you find out only when you come back to a gate that stopped you and find it gone. The land never changes between levels, only the gates and patrols do, so what you learn about the map and the shrine colours carries over while the order has to be found again. On the first level one shrine has a gate of its colour on the same screen, so you watch one crumble before the game starts working at a distance.",
        "look": "An early home-console look: flat green fields with oaks, pines and glinting ponds, yellow tracks with stepped corners, brick shrines with tiled roofs, and barred gates in red, blue, purple and light grey that crumble away when opened. A hooded black pilgrim with white eyes and a maroon scarf, magenta horned patrols whose eyes look where they are heading, and magenta thorn bushes, with every step sliding smoothly across the screen.",
        "vsPublic": "DC22 is the closest: on its first levels each coloured button changes every floor piece of its colour, but you click it on a side panel with its pieces on the same screen, and G50T’s floor plates are each joined to their gate by a line of the same colour. In SE01 a shrine never shows its colour, and after the first level its gates are always somewhere else, so you only learn what it did by travelling back to look. G50T and TU93 have patrols that kill you and hold still when you bump a wall; here patrols kill you too, but a bump lets them step, so you can spend moves to wait them out.",
        "markSaid": ""
      }
    },
    {
      "id": "wb03",
      "class_name": "Wb03",
      "path": "games/wb03.py",
      "sha256": "b53e99ad1ee6d4e48bf4aee523496eb34deb896fc6ee2f6050e6912917d9b738",
      "levels": 8,
      "human": null,
      "preview": "previews/wb03.png",
      "media": {
        "play": "previews/wb03.png",
        "levels": "previews/wb03-levels.png"
      },
      "tiles": 8,
      "inputs": [
        1,
        2,
        3,
        4,
        5,
        6,
        7
      ],
      "play": "https://arc3.sonpham.net/games/wb03",
      "spoiler": {
        "teaser": "Steer one sailboat across a huge open sea of islands, reefs, krakens, serpents and pirate ships. Every time you sail, the wind shoves all your other boats along too, and you can't see them. Get every boat into its own coloured berth before the move bar runs dry.",
        "hard": "The boat you are not steering keeps sliding downwind every time you move, usually off the screen, so the plan is really about where your other boats will end up. A boat only stays put when it is anchored in its own berth, sits on a shoal, or hides behind an island or another sail. Dangers (tentacles, serpents, cannon fire) move one step per move you make, so standing still is not free, and the only clock for waiting is moving another boat. Worlds are several screens across, so the whole plan has to be held in your head. In the serpent strait the only wait you can make is by moving a different boat, which also shoves the rest.",
        "rules": [
          "Arrow keys sail the boat with the white corner marks one square. Every other boat with its sail up is blown one square downwind each time you sail.",
          "A boat's sail hangs slack, and it stays put, when it sits on a shoal or has an island or another raised sail just upwind of it. Glassy dotted water behind islands shows the calm.",
          "Space, or a click on a boat or on its coloured arrow at the window edge, hands control to another boat. If the boat you leave is in its own coloured berth, it drops anchor and stays there.",
          "Bring every boat into its own berth before the move bar empties. Anchored boats are not pushed, and a boat that sails away from its berth raises its sail again.",
          "Red stripes on the water mark squares that are deadly after your next move (a tentacle, a serpent, or a pirate broadside), and whirlpools always are. Touching one ends the run, for any of your boats.",
          "Currents carry any boat sailing on them one square along their arrows. Barrels can be shoved along to block a drifting boat.",
          "On the night sea and the great sea the wind turns on a visible count: the arrow under the sea shows the wind now, a yellow arrow shows the next one, and pips count the moves until it turns.",
          "Undo takes a move back but does not give the spent move back."
        ],
        "special": "A large scrolling sea seen through a window that follows the boat you steer, with the other boats shown by coloured arrows on the window edge (click one to steer it). Eight clearly different seas: open water, a green lee-shore lagoon with a lighthouse, a kraken guarding a reef wall, pirate ships whose gun ports light up before they fire, rivers of current and whirlpools, a night sea where the wind turns, a serpent strait where you must hide in side bays, and a final great sea that mixes everything. Every danger and every rule is drawn, with no text anywhere.",
        "look": "Early-console pictures with no grey: flat saturated water in a different colour for each sea (blue, green lagoon, black abyss, purple sunset, pale river, starry night, jungle-green strait, orange-flecked dusk). Palm islands with huts, smoke, campfires, tents, totems, treasure chests and crabs, a striped lighthouse, outlined palms that sway, reefs, shoals dotted with sand, buoys, floating barrels and lily pads. White surf rings every coast. Boats are small sloops with a billowing, slack or furled sail and a pennant that streams with the wind; each berth is a ring and four pilings in the boat's colour with a flag. A kraken with slit yellow eyes and writhing tentacles, a horned sea serpent with humps, black pirate galleons with red sails and skull flags, spinning whirlpools, and chevron-marked currents. A slim strip under the sea shows the boats, the wind now and next, the seas completed and the move bar.",
        "vsPublic": "I did not do a side-by-side with any specific public game, so I only claim what I know of this one. It uses the full 64x64 screen as a scrolling window over worlds several screens across (as the brief says some public games do), packs several interacting parts into one view (wind, shelter, shoals, currents, wandering sea monsters, pirate guns, barrels), and changes its whole cast and look every level. One move here also moves pieces you cannot see, which is the part I would point to as unusual.",
        "markSaid": null
      }
    },
    {
      "id": "ss02",
      "class_name": "Ss02",
      "path": "games/ss02.py",
      "sha256": "e6e0f686667bd29d22170935cb09f53348071a7073839c1dbecb3bc55fdf2df3",
      "levels": 8,
      "human": null,
      "preview": "previews/ss02.png",
      "media": {
        "play": "previews/ss02.png",
        "levels": "previews/ss02-levels.png"
      },
      "tiles": 8,
      "inputs": [
        5,
        6,
        7
      ],
      "play": "https://arc3.sonpham.net/games/ss02",
      "spoiler": {
        "teaser": "A cheerful fruit market where every level is a new stall. Thread each fruit onto the right skewer, in the right order, before the burning fuse at the top runs out.",
        "hard": "A shared supply of fruit arrives in a fixed order and the next fruit goes onto whichever skewer is selected, right or wrong. Each skewer wants its own order, shown on a card beside it, and the only sign of progress is a skewer's plate turning green once its stack is exactly right. Several skewers start the same way, so an agent has to plan where each fruit is going to end up many steps ahead instead of placing it greedily. The fuse shrinks on every action, miss-clicks included, so wandering around loses. Each level also changes the machinery: a belt that keeps turning, two trays, a blender, orders by colour or by outline, and a rack that rotates. The agent has to work out each new rule from what it sees.",
        "rules": [
          "The next fruit in the supply goes onto the selected skewer, whether it is right or wrong.",
          "Click a skewer to select it. Press the thread action to put the next fruit on it. Undo takes back the last change to the board, but never gives back any fuse.",
          "Every action costs a place on the fuse, even a click on nothing. The run is lost when the fuse is gone.",
          "A skewer's plate turns green only when its whole stack matches its card. Win a level by turning every plate green.",
          "Conveyor levels: the belt turns one place after every action, and the fruit at the framed pick-up spot is the next one. Waiting costs fuse.",
          "Two-tray level: click a tray to choose which tray the next fruit comes from. Skewers are different heights, and a skewer will not take more fruit than it has room for.",
          "Blender level: a fruit that does not fit is blended away. That costs three places on the fuse, and a fresh fruit of the same kind goes on the back of the tray.",
          "Colour and shape cards: a coloured square takes any fruit of that colour, a black outline takes any fruit with that shape, and a picture takes only that fruit.",
          "Revolving rack: only the skewer in the lit window takes fruit, and the rack turns one place after every fruit. Click a skewer to bring it round to the window.",
          "The festival level mixes two trays, the rack, the blender and the colour and shape cards."
        ],
        "special": "Eight different markets, each with its own look and one new rule: a morning stall, a factory conveyor, an orchard with two trays, a smoothie bar with a blender, a carnival with colour and shape orders, a dusk market with a revolving rack, a night pier with a conveyor, and a festival that mixes them all. Each has its own vendor cat who blinks, follows what you pick, points, cheers and gets worried when the fuse runs low. Finished skewers sparkle, blended fruit splashes juice into a jug that fills up, and the level-clear shower of confetti plays before the next market opens.",
        "look": "Bright, saturated early-console colours with no greys: striped awnings, lanterns, bunting, crates, a lighthouse, fireworks and little houses, each level with its own backdrop, skewer style (straws, candy canes, masts) and vendor coat. The fruit are 8-pixel pictures with outlines, highlights and shading (apple, orange, plum, cherry, strawberry, pineapple, watermelon slice, banana, grapes). A burning fuse bar runs along the top, and the order cards show the fruit as small pictures. Everything on the screen is drawn; there is no text anywhere.",
        "vsPublic": "I did not compare it to a particular public game, so I make no claim about which is closest. It follows the public games' conventions: the run ends only when a visible counter runs out, reset refills the level, undo never refunds the counter, and the board fills the whole 64 by 64 screen with several parts at once. Beyond that, each of its levels has a different layout and adds one new rule to the same fruit-ordering idea."
      }
    },
    {
      "id": "pt02",
      "class_name": "Pt02",
      "path": "games/pt02.py",
      "sha256": "58f0415741646ef9da138a947282fe23d884e6b8c2b3f57a58397b8cc8e10ae3",
      "levels": 8,
      "human": null,
      "preview": "previews/pt02.png",
      "media": {
        "play": "previews/pt02.png",
        "levels": "previews/pt02-levels.png"
      },
      "tiles": 8,
      "inputs": [
        1,
        2,
        3,
        4,
        5
      ],
      "play": "https://arc3.sonpham.net/games/pt02",
      "spoiler": {
        "teaser": "Perfect Target. You are a ship shooting at other ships.",
        "hard": "You can only hurt a ship from behind. Hit a bow or side and the shot bounces back and costs you a heart. Enemy guns fire on a beat down lanes you have to read one press ahead. A bot that shoots whatever is in front of it dies fast, because it has to work out that facing matters. Same family as SC25's fireball and TU93's head-on killer.",
        "rules": [
          "You sail the black ship one square at a time with the arrow keys and fire with space; the ball flies straight ahead along the dotted line from your bow, and pressing toward land or a ship turns you to face it without moving.",
          "Sink every enemy ship to clear the level, but only a ship’s stern, the end with the yellow lamps, can be hurt: you must get behind it, facing the way it faces, and each hit puts out one lamp.",
          "A ball that strikes a bow or a side bounces straight back and costs you one of three hearts; the aim line turns pink before you fire to warn you.",
          "Enemy ships never sail, but every press, even a bump or a shot, is one beat of a fixed clock, and gunships fire on a set rhythm: the gun turns orange two presses before a shot, then red with a red dashed lane one press before, and since your move lands before the shot, stepping out of the lane on that press keeps you safe.",
          "Your ball stops at the first ship in its path, so one ship can shield another from you, and islands and ships stop enemy fire too, so they can shield you; lose all three hearts and your ship sinks and the run ends; a reset starts the level again exactly as it began, same rhythm.",
          "Level 1 cannot be lost; later levels add bouncing shots, gunships, two gunships on different beats, ships that turn a quarter on a timer (the tip of the bow turns white one press before), a frigate firing from both sides, and finally a galleon that fires from its bow and both sides."
        ],
        "special": "In the pictures, every ship, prop and creature is its own drawn piece with eyes, shading and animation, the second water colour is now soft so ships stand out at a glance, and each of the eight seas looks clearly different from the others. The rules are exactly the same as the old game.",
        "look": "Every level is its own little world with its own big landmark, shore, props and sea life. A sunny cove with a beach house and palms, a meadow archipelago with a windmill, a snowfield with an igloo and floating ice, a canyon strait with a tall stone pillar, a lava island with a smoking volcano, a jungle with a totem and lily pads, a night harbour with a sweeping lighthouse beam and glowing lanterns, and a ruined temple with a giant stone figure. Ships have faces, sails and foam wakes, and the water has drifting waves, cloud shadows, gulls, dolphins, whales and other sea creatures that do nothing. Hearts and one small ship per enemy sit in the strip along the bottom. Winning a level throws confetti. Losing turns the frame dark red, the ships gloat and wreckage drifts.",
        "vsPublic": "The nearest public pieces are TU93’s red enemy, which kills you head-on and dies if you reach it from the side or behind; SC25’s fireball, which flies the way you last moved and just fizzles on anything but its target; and KA59’s bombs, which go off every few presses. In PT01 a shot that strikes a ship’s bow or side bounces back and costs you a heart, so only the stern can be hit, and enemy guns fire at you on fixed beats down lanes drawn one press ahead that islands and other ships block."
      }
    },
    {
      "id": "te02",
      "class_name": "Te02",
      "path": "games/te02.py",
      "sha256": "c4db215471c976d6b170dcfb14e6f1adae783da7c1bbec103d8c2447b662786a",
      "levels": 8,
      "human": null,
      "preview": "previews/te02.png",
      "media": {
        "play": "previews/te02.png",
        "levels": "previews/te02-levels.png"
      },
      "tiles": 8,
      "inputs": [
        1,
        2,
        3,
        4,
        5,
        6,
        7
      ],
      "play": "https://arc3.sonpham.net/games/te02",
      "spoiler": {
        "teaser": "Tethered Extraction. A cable and a pulley.",
        "hard": "Your cable is a fixed length and wraps round posts, so the same route costs more or less depending on which side of each post you pass. Blades cut the cable, not just you. A bot has to plan the whole path before it moves, not feel its way. In the family of SK48, where you carry a length of something and spend it.",
        "rules": [
          "You drive a small green rover with the arrow keys; an orange cable runs from the blue dock to the rover and always pulls tight, bending only at the corners of the posts it wraps around.",
          "Stop beside the blue crystal (not diagonally) or right on top of it, click it to pick it up, then drive back onto the dock to clear the level.",
          "The cable has a fixed length, shown as orange dots on the spool by the dock; a move that needs more is refused and a red mark flashes at the bend holding it back, so the side you passed each post on decides how far you can reach.",
          "Space reels you in one step back along the cable toward its last bend, and undo takes back your last move.",
          "Red blades end the attempt two ways: drive the rover into one, or let the cable touch one as it sweeps behind you, even when the rover itself stays well clear; undo cannot save you then, only reset, which starts the level again.",
          "Levels 1 and 2 have no blades and level 3 brings the first; from level 5 you push a silver cover along an orange rail onto a blade, its stripe turns green as it locks, and then rover and cable can both cross that blade; level 6 bends the rail, and the last two levels add long walls that come alternately from the top and the bottom, with a much longer cable that has to wind back and forth between them."
        ],
        "special": "In the pictures, every object is a named sprite with its own face or texture, every room has its own look, and a win bursts into confetti while a loss turns the room red with rain and flying shards.",
        "look": "Eight rooms, each with its own floor and cast. A blue workshop with a crate conveyor, drums and an orange welding cart. A white kitchen with a cat, a running mouse and a patterned rug. A dark power plant with grating, dials and steam. A space stage with haze, ringed planets, a comet and a rocket. A pink candy world with a lollipop swirl and a gingerbread man. An aquarium with a whale, jellyfish, a crab and a treasure chest. A sunny meadow with a pond, a frog, a bunny and sunflowers. A purple crystal cave with bats, glowing stones and eyes in the dark. The little robot blinks, winces when blocked, cheers on a win and cries when the run is over.",
        "vsPublic": "The closest public games are SK48, whose skewer runs straight out of its handle on an energy budget, and TU93 and G50T, where the path you walked comes back as an enemy or a twin. In TE01 you have a fixed length of cable that bends round posts, so how much of it a route uses depends on which side of each post it went, and blades cut that cable as it sweeps, not just the rover."
      }
    },
    {
      "id": "dz02",
      "class_name": "Dz02",
      "path": "games/dz02.py",
      "sha256": "4793dc472d9b2a7937411622d357dc5b00d0f5109a97b2a7de2d41a1b9d22e93",
      "levels": 8,
      "human": null,
      "preview": "previews/dz02.png",
      "media": {
        "play": "previews/dz02.png",
        "levels": "previews/dz02-levels.png"
      },
      "tiles": 8,
      "inputs": [
        1,
        2,
        3,
        4,
        5,
        6
      ],
      "play": "https://arc3.sonpham.net/games/dz02",
      "spoiler": {
        "teaser": "Dig Zone. Inspired by the desert levels of Super Mario Bros. 2 on the original NES.",
        "hard": "Every dig comes out of a bar, and the colour of the ground tells you if it takes one, two or three clicks, or never breaks. Sand falls into the hole you just made. So it's planning, not poking: a bot that clicks around to see what happens runs the bar dry. A cousin of BP35's shaft.",
        "rules": [
          "You see a green hero at the top of a sand shaft whose checkered finish lies out of sight far below, and a strip at the side with your hearts, a star slot and a bar: its yellow is your digging budget, a green dot on it shows how deep you are, and it ends in the same checkers.",
          "Arrow keys walk, and up climbs one step when sand or earth is right beside the hero; click the square straight above, below, left or right of him to dig it: sand takes one click, packed earth two, rock three, and black bedrock never breaks.",
          "Loose things fall: dig under the hero and he drops into the hole, and sand, hearts, stars and batteries pour into any hole opened under them, so a hole dug beneath a sand column fills right back up.",
          "Walk into a creature to fight it, which costs no clicks: you punch out one of its white stripes, it punches out one of your hearts, and so on until its last stripe goes, so a one-stripe crab costs nothing, a two-stripe mole one heart and a three-stripe worm two.",
          "Lose your last heart, or empty the bar while the finish is still out of reach, and the run ends, and a reset starts the level over; walking onto a heart gives one back, up to three, and a blue battery in the sand puts clicks back.",
          "Later levels add packed earth with moles, rock bands with worms, bedrock to tunnel round, red-eyed creatures that come down with the sand and start the fight themselves if they land on your head, and a star you can carry: space lights it, and while its ring of sparks lasts, creatures go flat at a touch and sand digs for free without pouring back in."
        ],
        "special": "In the pictures, every level has its own backdrop, sand colours, buried set piece and wall pattern, none of it grey, and the whole screen is built from named, moving sprites with faces and shading instead of painted specks. The file is about two and a half times as long as the original, almost all of it picture and animation data.",
        "look": "Level one is a sunny desert with cactus, dunes and a castle on the horizon, sand in yellow and orange bands. Level two is a tropical beach with palms, green turf and blue water pockets. Level three is a fiery brick cellar of orange and red with gold crates and a purple seam. Level four is a pink and sky-blue night with a moon, white sparkles and deep blue pools. Level five is a red sunset canyon with pyramids and a setting sun, magenta strata and glowing ember blocks. Level six is a meadow in green and yellow with buried purple stones and drifting fireflies. Level seven is a purple and magenta crystal night with a moon and blooming petals. Level eight is a dark star-sky cave of pink gems and a blue web, with a tall striped ladder creature. The miner has a lamp helmet, overalls and boots, and his eyes cross out when he loses. Creatures have faces whose eyes follow him, little critters crawl, swim and flit in the hollows, and clouds, palms and stars gently move. A win throws a themed shower and fireworks; a loss turns the world dark red with a ghost rising and a sad rain cloud.",
        "vsPublic": "BP35 is the closest: a tall shaft that runs past the screen, where clicking breaks some blocks and every action, undo included, counts on the bar. In DZ01 walking and fighting are free and only digging uses up the bar, the ground’s colour tells you whether it takes one, two or three clicks or never breaks, and sand and loose items fall into whatever you open. In TU93, an enemy kills you or dies depending on which side you meet it from; here a fight trades stripes for hearts, and the price is drawn on the creature before you start."
      }
    },
    {
      "id": "dz03",
      "class_name": "Dz03",
      "path": "games/dz03.py",
      "sha256": "a45b84abb37a92d06e09b0873b838a12898dd264becc9520b02683ac56a9f9a4",
      "levels": 8,
      "human": null,
      "preview": "previews/dz03.png",
      "media": {
        "play": "previews/dz03.png",
        "levels": "previews/dz03-levels.png"
      },
      "tiles": 8,
      "inputs": [
        1,
        2,
        3,
        4,
        5,
        6
      ],
      "play": "https://arc3.sonpham.net/games/dz03",
      "spoiler": {
        "teaser": "Dig Zone. Inspired by the desert levels of Super Mario Bros. 2 on the original NES.",
        "hard": "Every dig comes out of a bar, and the picture on the ground tells you how it behaves: loose sand pours into any hole you open, packed sand holds so a tunnel through it stays open, and quicksand pours and slumps sideways into every gap near it. Creatures sleep until a square beside them opens, then they come for you. So it's planning, not poking: a bot that clicks around to see what happens runs the bar dry or wakes something it cannot fight.",
        "rules": [
          "You see a green hero at the top of a sand shaft whose checkered finish lies out of sight far below, and a strip at the side with your hearts, a star slot and a bar: its yellow is your digging budget, a green dot on it shows how deep you are, and it ends in the same checkers.",
          "Arrow keys walk, and up climbs one step when loose sand, packed sand or earth is right beside the hero; click the square straight above, below, left or right of him to dig it: any sand takes one click, earth two, rock three, and black bedrock never breaks.",
          "Loose sand and quicksand pour: dig under the hero and he drops into the hole, and they, hearts, stars and batteries fall into any hole opened under them. Quicksand also slumps off a ledge diagonally into a gap beside it, and gives nothing to climb. Packed sand never pours, so a corridor dug through it stays open; loose sand above a cut made in the top row of a band still pours in, so cut the row below.",
          "A creature is asleep while it is sealed in. When a square beside it opens, by your digging or a collapse, it wakes, and after each of your moves it takes one step toward you through open squares; if it ends up beside you it fights. Walk into one yourself to fight it too, which costs no clicks: you punch out a stripe, it punches out a heart, so a one-stripe crab costs nothing, a two-stripe mole one heart and a three-stripe worm two.",
          "Lose your last heart, or empty the bar while the finish is still out of reach, and the run ends, and a reset starts the level over; walking onto a heart gives one back, up to three, and a blue battery in the sand puts clicks back.",
          "A star you can carry still works: space lights it, and while its ring of sparks lasts, creatures go flat at a touch and sand digs for free. Red-eyed creatures still come down with the sand and start the fight if they land on your head. Loose sand dropped into a corridor shuts it, which also shuts out whatever is chasing you."
        ],
        "special": "Two new sands and creatures that hunt. Every level is built so the straight way down is blocked, and you travel sideways under ledges through packed sand, with sleeping creatures sealed in the walls beside your tunnel.",
        "look": "Level one is a sunny desert with cactus, dunes and a castle on the horizon, sand in yellow and orange bands. Level two is a tropical beach with palms, green turf and blue water pockets. Level three is a fiery brick cellar of orange and red with gold crates and a purple seam. Level four is a pink and sky-blue night with a moon, white sparkles and deep blue pools. Level five is a red sunset canyon with pyramids and a setting sun, magenta strata and glowing ember blocks. Level six is a meadow in green and yellow with buried purple stones and drifting fireflies. Level seven is a purple and magenta crystal night with a moon and blooming petals. Level eight is a dark star-sky cave of pink gems and a blue web, with a tall striped ladder creature. The miner has a lamp helmet, overalls and boots, and his eyes cross out when he loses. Creatures have faces whose eyes follow him, little critters crawl, swim and flit in the hollows, and clouds, palms and stars gently move. A win throws a themed shower and fireworks; a loss turns the world dark red with a ghost rising and a sad rain cloud.",
        "vsPublic": "BP35 is the closest: a tall shaft that runs past the screen, where clicking breaks some blocks and every action, undo included, counts on the bar. In DZ03 walking and fighting are free and only digging uses up the bar, the picture on the ground tells you how it behaves, loose sand and quicksand fall into whatever you open while packed sand stays put, and a creature you free comes to find you. In TU93, an enemy kills you or dies depending on which side you meet it from; here a fight trades stripes for hearts, and the price is drawn on the creature before you start."
      }
    },
    {
      "id": "lt04",
      "class_name": "Lt04",
      "path": "games/lt04.py",
      "sha256": "ef35cb32810ee621604cdf0957ff71d856a9fac7f0d830fe8eb79707307bfbac",
      "levels": 9,
      "human": null,
      "preview": "previews/lt04.png",
      "media": {
        "play": "previews/lt04.png",
        "levels": "previews/lt04-levels.png"
      },
      "tiles": 9,
      "inputs": [
        1,
        2,
        3,
        4,
        5,
        6,
        7
      ],
      "play": "https://arc3.sonpham.net/games/lt04",
      "spoiler": {
        "teaser": "Lock Target. Select munitions, hunt the hostiles. Try not to kill too many friendlies.",
        "hard": "You never move anyone. You aim, and every shot lands late, so you have to lead a walking target. From the fourth mission the city answers back: big shots pull crowds and ambulances in. A bot has to predict where people will be, and a single screenshot doesn't show motion. In the family of SC25's aimed fireball.",
        "rules": [
          "You look down on a dark city from the air, where people and cars are small squares coloured in the middle: red for targets, yellow for street traffic, green for people inside schools and hospitals, and ambulances carry pink crosses.",
          "Click anywhere on the map to fire the selected round, press space or click a round in the tray to switch rounds, and use the arrow keys to pan across a city of four districts, with arrows at the screen edge pointing to targets out of view; every action, even panning, moves the city on one step, and undo just waits a step.",
          "Every round lands late, so you aim where a walking target will be, and now and then a target takes a double step: precision lands on the next step with a tiny blast, fire a step later and leaves flames that spread for a few steps, and heavy is the slowest with the biggest blast; each round has a small stock that slowly refills.",
          "A mission is won when every target is gone, nothing is still falling and no fire is burning; hurting bystanders, ambulances or buildings (schools and hospitals cost most), hitting a target that is not yet confirmed, and above all letting a target blow up drain the shield at the top, and from the fourth mission on an empty shield fails the mission and you start it over.",
          "From the fourth mission, heavy and fire rounds call in ambulances and crowds of onlookers, more each time, and send nearby targets running, and a target left alone too long pulls people round itself and then blows up among them.",
          "Later missions add a flare that confirms who is who and freezes nearby targets, an aid drop that slows the whole city and puts out fires, targets riding in cars with passengers (hit the car and everyone in it goes) and targets that show only part red, or look exactly like street traffic, until confirmed, then a hospital fire that blocks the win until aid puts it out or it bursts, and a sensor that only updates every third step; the damage you do stays in the city for every mission after."
        ],
        "special": "In the pictures, this redraw is the same game with a far richer world: nine different looks instead of one, every building and creature drawn as its own small character, and gentle life everywhere (blinking, drifting, flickering). Roughly three times the drawing weight of the old version, with no words or numbers on screen and no grey.",
        "look": "Every mission is its own season with its own ground, streets, roofs and trees. Mission one is a green summer town with windmill and pond, two is yellow desert with pyramid and tents, three is a white snowy town with igloos and penguins, four is a purple mushroom night, five is a seaside with lighthouse and boats and striped awnings, six is orange autumn with leaves and haystacks, seven is a pink and blue candy town with cupcakes and lollipops, eight is a dark moonlit city with an observatory, owls and bats, and nine is a bright carnival with a big top, balloons and confetti. Everything is a named picture: people with faces who cheer or wince, cars, ambulances with flashing lights, roofs with their own dressing (snow, frosting, bunting, solar panels), tall landmarks, little animals in the corners, flames and blasts. A won mission bursts into fireworks; a lost run goes red with a storm cloud and a sad face.",
        "vsPublic": "BP35 and LF52 are the only public games whose view scrolls, and in both you move pieces through the world; in LT03 you never move anyone, you pan across a busy city and aim. SC25’s fireball and CD82’s dye are aimed at boards that hold still, and KA59’s bombs wait on a fuse, but here your own shot arrives late and the target keeps walking. WA30 has other movers that act after each of your moves; from the fourth mission this city also answers you, sending crowds and ambulances to every heavy or fire blast."
      }
    },
    {
      "id": "lt05",
      "class_name": "Lt05",
      "path": "games/lt05.py",
      "sha256": "f15a0a7888f39921d2ed1f77e5eddfdfb99f24adf10b16f264bcfc2b6c6ba730",
      "levels": 9,
      "human": null,
      "preview": "previews/lt05.png",
      "media": {
        "play": "previews/lt05.png",
        "levels": "previews/lt05-levels.png"
      },
      "tiles": 9,
      "inputs": [
        1,
        2,
        3,
        4,
        5,
        6,
        7
      ],
      "play": "https://arc3.sonpham.net/games/lt05",
      "spoiler": {
        "teaser": "Lock Target. Five munitions, each with one job: freeze a raider, lure the crowd away, then bring the block down on them.",
        "hard": "Nothing on screen tells you what a munition does until you have seen it: a phone freezes one raider, a green pulse sends every civilian and ambulance walking to the spot, and a single round flattens a whole screen. A roof protects whoever is under it, so a shot at a house does nothing to the raider inside until the roof comes down. A bot has to read the roofs, notice who is walking where, and find the order: signal, lure, wait, fire. In the family of SC25's aimed fireball.",
        "rules": [
          "You look down on a city from the air, where people and cars are small squares coloured in the middle: red for targets, yellow for street traffic, green for people inside schools and hospitals, and ambulances carry pink crosses.",
          "Click anywhere on the map to use the selected munition, press space or click a pod in the tray to switch, and use the arrow keys to pan across a city of four districts, with arrows at the screen edge pointing to targets out of view; every action, even panning, moves the city on one step, and undo just waits a step.",
          "Precision lands next step and is tiny, but takes two steps off a roof; heavy lands four steps late with a wide blast and kills everyone in the open; both take two steps off every roof they touch, and a roof is gone after three. Anyone standing under a roof is safe from every blast until it is down, so a target hiding in a house needs the roof broken first.",
          "Signal (from mission one) is instant: click a target to freeze it for a few steps, show it bigger and confirm who it is; a click on nothing is refused and costs no round. It is how you hold a target still long enough to switch munitions and fire.",
          "Aid (from mission four) sends every civilian, crowd and ambulance in the open within reach walking to the spot for a while, and never a target; it does nothing else. Fire (from mission five) is one round that lands two steps late and wipes a square fifty-odd cells across, everything in the open, and brings every roof in it down: lure the innocent off with aid, freeze the targets, then fire.",
          "A mission is won when every target is gone, nothing is still falling and no fire is burning. The shield bar at the top shows what you lost: red where people died (ambulances cost more), violet where a hospital or school was hit, dim for anything else, and a red cross or green burst marks where someone fell. Plain buildings cost nothing. From the fourth mission an empty shield fails the mission and you start it over.",
          "A target left alone too long pulls a crowd around itself and then blows up among them, so freezing it also stops its clock. Later missions add targets riding in cars with passengers (hit the car and everyone in it goes), targets that show only part red or look like street traffic until you signal them, and a sensor that only updates every third step."
        ],
        "special": "Every munition does one thing you can see, and the jobs chain: the phone holds a target, the green pulse empties the street, the big round clears the block, and the roof rule makes you break a house before you can hit who is inside it. There is no luck anywhere; the same moves always do the same thing. Nothing is hidden from the picture: the attack fuse and the stale-sensor eye are drawn, and the old unseen timers are gone.",
        "look": "The same nine seasonal cities as LT04: a green summer town with windmill and pond, a yellow desert, a snowy town with igloos, a purple mushroom night, a seaside with a lighthouse, orange autumn, a candy town, a moonlit city and a carnival. New: a phone icon for signal, a green pulse that spreads across the city for aid, a square fireball that sweeps the screen for fire, roofs that crack, fall and leave rubble, a marked raider with a bigger bracket and bigger red square, and a red cross or green burst where each person or raider fell.",
        "vsPublic": "BP35 and LF52 are the only public games whose view scrolls, and in both you move pieces through the world; in LT05 you never move anyone, you pan across a busy city and use munitions. SC25's fireball and CD82's dye are aimed at boards that hold still, and KA59's bombs wait on a fuse, but here your own shot arrives late and the target keeps walking, until you freeze it. WA30 has other movers that act after each of your moves; in this city a left-alone raider pulls a crowd round itself, and your own aid pulse sends the crowd away."
      }
    },
    {
      "id": "es02",
      "class_name": "Es02",
      "path": "games/es02.py",
      "sha256": "4345e8bb1206abb25660758c6c047762511533ae0d9de0e3965e9acdc9d9bf81",
      "levels": 8,
      "human": null,
      "preview": "previews/es02.png",
      "media": {
        "play": "previews/es02.png",
        "levels": "previews/es02-levels.png"
      },
      "tiles": 8,
      "inputs": [
        1,
        2,
        3,
        4,
        5,
        6
      ],
      "play": "https://arc3.sonpham.net/games/es02",
      "spoiler": {
        "teaser": "Extreme Sneeze. Spread the alien outbreak to win.",
        "hard": "Every person you infect is a new body you can jump into, so who you are keeps changing. Doctors cure your work and guards shoot the alien. A bot loses track of which piece is it. Like SK48, where you click between two rods, but here there can be a whole crowd.",
        "rules": [
          "On level one you are a small green alien. Arrow keys walk, and space sneezes a short fan of green droplets straight ahead and out to both forward diagonals. Walls and the first person in each line stop it; vent grilles do not.",
          "The alien’s sneeze is weak: a person needs three hits, and a green spot appears on their face with each one. The first person the alien fully infects becomes the body you play. From level two you start each level already inside an infected person, and the alien follows you on its own, sneezing at any healthy person lined up close to it.",
          "Your host’s sneeze infects anyone it reaches in one hit, and each new victim sneezes onward the same way straight away, so a lined-up crowd falls like dominoes. From level two each host sneeze spends one of the magenta spore dots beside you, and every new infection gives one back until the stack is full. With none left, space does nothing.",
          "Click any infected person on screen to jump into them. Walking into a vent grille also jumps you if an infected person stands just past it; grilles stop feet but let sneezes through. From level two most people pace slowly back and forth, and the ones you leave behind now and then give a weak cough toward their nearest healthy neighbour.",
          "Level one needs two infections. From level two you must infect everyone, guards and doctors included. Guards in maroon and red arrive on level three: they walk toward the alien, and once lined up with it in a clear straight line they flash yellow, then shoot a piece off it. If the whole alien is shot away you lose, and infecting a guard stops it.",
          "Doctors in white arrive on level four. They cure sick people close by, and if they cure your host you are back in the alien. When no one sick is near, they wall up doorways with white walls that stop both feet and sneezes. Only your host’s full sneeze chips those walls, and it takes two. Every board after the first is bigger than the screen and scrolls with you."
        ],
        "special": "In the pictures, this is the biggest redraw in the set: eight different backdrops, every character and fitting a named sprite with a face, and gentle background life (swaying trees, sparrows, butterflies, a taxi, blinking lights, drifting bubbles, steam, drips) that does nothing to the game. The rules are exactly the original's.",
        "look": "Every level is its own little world drawn from named, faced pieces. The plaza has green trees, a shop row with striped awnings, a street and a passing taxi. The market is warm yellow brick with fruit stalls and lanterns, and the night market is the same street in deep violet with glowing cobbles. The first clinic is bright sky-blue and white with soap bubbles; the second ward is sky-blue and sunny-yellow slabs with toys and tied balloons. The station is bevelled violet and maroon with mosaic inlays and a train car, the tunnel is cool blue with dripping pipes and a spinning vent fan, and the final terminal is a black circuit board with glowing traces and chips, with pulses running along them. Characters have faces that blink, wince when hit, cheer with raised hands on a win and cry with a drooping ghost on a loss. A won level sweeps a green wave with confetti across the screen; a lost run closes a solid red frame in from the edges, leaving the board readable in the middle.",
        "vsPublic": "SK48 lets you click between two rods from level six, and WA30’s thief pulls finished crates back out of their bays. In ES01 every person you infect is another body to click into, while doctors cure them and guards shoot the alien. The nearest public spread is BP35’s purple, which grows into the empty squares around a clicked block, but that spreads scenery: we found no public game where a state passes from one character to the next, and like BP35, ES01’s boards are bigger than the screen with a view that follows you."
      }
    },
    {
      "id": "eh02",
      "class_name": "Eh02",
      "path": "games/eh02.py",
      "sha256": "0219316f1011f537bfc6e489601508d7ec75ca587caebf73500de12109499593",
      "levels": 8,
      "human": null,
      "preview": "previews/eh02.png",
      "media": {
        "play": "previews/eh02.png",
        "levels": "previews/eh02-levels.png"
      },
      "tiles": 8,
      "inputs": [
        1,
        2,
        3,
        4,
        5
      ],
      "play": "https://arc3.sonpham.net/games/eh02",
      "spoiler": {
        "teaser": "Eroding Horizons. Every peek with your lantern wears away the floor you need to get back.",
        "hard": "You can't see what a square holds until you step off it, and every look wears out the floor you need to get home. The budget is the map. A bot that explores freely, the way it can in other games, burns its own way back. The hidden information is the point.",
        "rules": [
          "You walk a small blue creature through corridors cut into rock with the arrow keys. You can see the shape of the corridors but not what any square holds, and stepping onto a square never shows you what is there.",
          "Space is your lantern. Right after you step onto a dark square, space lights the square you are standing on and steps you back onto the one you came from, showing whether it held a key, the exit ring, a pit or nothing. On ground that is already lit, space does nothing.",
          "Every look burns one of the two orange marks on the square you step back onto. When its last mark goes it becomes a crossed orange scar: you can step off it but never back on, so the order you explore in decides the level. The entrance never wears out.",
          "Lighting a key sends it flying into a slot along the top. When every slot is full the ring turns from pink to pale blue. You have to light the ring itself too, then walk in.",
          "Pits look like any other dark square. Step onto one and then walk off it in any direction, even back the way you came, and you fall back to the entrance. Press space on it instead and you step back safely; either way the pit is lit and can never be entered again.",
          "Level one has no marks. Later levels add pits, a loop and thin ground that holds only one mark. Every step and every look uses up a bit of the white bar under the key slots; when the bar runs out, the creature turns red, the corridor fills in with rock and the run ends. A reset starts the level again with a full bar."
        ],
        "special": "In the pictures, everything is a separate named sprite, with big two-frame set pieces filling the rock in every level, a different cave per level, gentle drifting life (bats, fish, sparks, snow, bubbles) and a confetti burst on a win. No text anywhere on the play surface.",
        "look": "Cellar: red brick with a wooden door, cauldron, arched windows and torches. Crystal cave: bright blue with big cut gems and spires. Night: a black cave with a green fruit tree, owls, lamps, mushrooms and bats. Lava: orange rock with a fanged demon face, lava falls and a smoking volcano, kept away from where you start. Ice: white snow with snowmen, frosty firs and igloos. Temple: dark red stone with a sun face, altars and totems. Sea: pale blue water with round coral domes, an anemone, kelp, a treasure chest and swimming fish. Vault: blue tile with armour, shields, gold pillars and a treasure heap. The walker has eyes, blinks, grins on a win and frowns on a loss; the cave turns red when a run is lost.",
        "vsPublic": "LS20 also has a key and a door, but you reshape one key on tiles in plain sight, and its fog only arrives on the final level, where you can still see everything near you; in EH01 nothing a square holds shows until you step back off it. G50T’s fifth action walks you back to the start and leaves a ghost that replays your moves, and SK48’s undo is free; in EH01 stepping back is the only way to see, and each step back costs a mark on the floor. That floor is the whole budget, where LS20 and TU93 count your steps on a bar."
      }
    },
    {
      "id": "ff02",
      "class_name": "Ff02",
      "path": "games/ff02.py",
      "sha256": "2cfe653e9a4639401f61a52d18ef251b249f1ec2cfad8a929a1fd1ba2e37501b",
      "levels": 8,
      "human": null,
      "preview": "previews/ff02.png",
      "media": {
        "play": "previews/ff02.png",
        "levels": "previews/ff02-levels.png"
      },
      "tiles": 8,
      "inputs": [
        1,
        2,
        3,
        4
      ],
      "play": "https://arc3.sonpham.net/games/ff02",
      "spoiler": {
        "teaser": "Feeding Frenzy. Eat the small fry, ride the tide, grow big.",
        "hard": "One tide moves every fish and current at once, on a beat, and a yellow dot shows each next move. Size decides who eats who, and you grow. A bot has to plan several beats ahead instead of dodging. It borrows AS66's always-changing direction and BP35's pull across a world bigger than the screen.",
        "rules": [
          "You are the green fish. You swim with the arrow keys through a sea bigger than the screen, and the view follows you.",
          "Touch a fish your size or smaller to eat it. Colour shows size: orange is smallest, then pink, magenta, red and maroon. Eat enough to fill the meal pips and the level clears; from level two, a few meals also make you grow a size.",
          "Bigger fish bite and cost one of your three lives, then you blink safe for a moment. They never chase you; each one just swims its own pattern.",
          "The lighter water is current. It carries you and every other fish, and you can never swim against it: at best you hold still.",
          "Every few moves the tide turns (the yellow pips at top right count down to it), and every current and every other fish changes heading. A yellow dot on each current’s arrows and on each other fish shows which way it goes next, and every other fish that is off the screen shows as a small mark in its colour on the screen’s edge, food and danger alike.",
          "From level two a time bar runs down, and running out or losing your last life ends the run. Later levels bring more currents, more fish and bigger ones, and on the last two levels you can grow big enough to eat even the largest fish."
        ],
        "special": "In the pictures, every level has its own seabed, landmarks, props and water colour, so no two seas look alike, and the water and floating shapes are kept clear of the current lanes and the fish so you can read the board at a glance. Rules and levels are unchanged.",
        "look": "Same fish game, redrawn from named pictures. Level one is a bright reef with white-capped sand, red volcano vents, kelp and pink jellyfish. Level two is a green meadow of tall grass. Level three is a red-hot rock sea with hanging black spikes and big red domes. Level four is a purple coral country. Level five is a wrecked ship with glowing portholes. Level six is a purple crystal and bubble sea. Level seven is a bone-yard and giant kelp. Level eight is ruined arches and floating orange islands. Fish have eyes, mouths and fins and react when they eat, get bitten, win (a firework shower and a grin) or lose (a red dimmed rim and crossed-out eyes). Kelp sways, jellyfish pulse, bubbles rise and tower tips blink.",
        "vsPublic": "BP35 is the closest: it also scrolls and carries you with a pull you cannot refuse, but its pull runs one way across the whole level, slides you until something solid stops you, and you flip it yourself by clicking. FF01’s sea has many currents that push a set distance each move, carry every fish, and all turn together on one tide clock, with each next heading shown ahead of time. In TU93, whether you or its red enemy dies depends on which way that enemy faces; here it depends on size, and your size grows as you eat."
      }
    },
    {
      "id": "se02",
      "was": [
        "xb02"
      ],
      "class_name": "Se02",
      "path": "games/se02.py",
      "sha256": "8499ad0c3efdc3875efad46627e49a49ec5905d76f05d3f9e5edf7d040510304",
      "levels": 6,
      "human": null,
      "preview": "previews/se02.png",
      "media": {
        "play": "previews/se02.png",
        "levels": "previews/se02-levels.png"
      },
      "tiles": 6,
      "inputs": [
        1,
        2,
        3,
        4
      ],
      "play": "https://arc3.sonpham.net/games/se02",
      "spoiler": {
        "teaser": "Shrine Exploration. Light a shrine and a gate crumbles somewhere you can't see.",
        "hard": "Light a shrine and a gate crumbles somewhere you can't see, and nothing tells you which. You only find out by going back to look. It's DC22's trick, where one click rewrites the floor anywhere on the board, but hidden and far away.",
        "rules": [
          "You walk a hooded pilgrim along yellow tracks with the arrow keys, through a countryside several screens wide and tall. You start beside the sanctum; open its barred door and walk in to clear the level.",
          "Four shrines stand in the four corners. Step onto a shrine’s brazier and every gate of one colour, anywhere in the world, crumbles for the rest of the level.",
          "No shrine shows which colour it opens, but that never changes: top-left opens red, top-right blue, bottom-left purple, bottom-right light grey. The sanctum door is a gate too, and its colour changes from level to level.",
          "The gates decide which shrines you can reach, so each level hides an order. The land is the same in every level; only the gates and the patrols change. Until the last two levels some shrines open nothing, and the last two need all four.",
          "Walk into a magenta thorn bush, or let a magenta horned patrol step onto you, and the run is over; reset to start the level again. Patrols pace short stretches of track from level two on, one step for each move you make; the flowers are harmless, even the magenta ones.",
          "A bar under the world shows the moves you have left for the level. It shrinks with every move, bumps included, and when it runs out the run is over. Lit shrines stay lit. Bumping into a wall or a shut gate still lets the patrols take their step, which is how you wait for one to pass, but it costs a move."
        ],
        "special": "In the pictures, this is a much bigger world than the old one: six full seasonal worlds with their own ground, trees, ponds and wildlife, all as separate moving pieces, with the same long scrolling trek, and nothing written anywhere on screen.",
        "look": "Every level is its own season and place: a green spring meadow with a bunny, a red-and-gold autumn wood with a fox, a white snow land with a penguin, a dark blue night forest with bats, a hot orange dune with palms and a lizard, and a purple twilight swamp with glowing mushrooms. The pilgrim, the horned patrols and the thorns are drawn as little creatures with faces and a walk. Shrines are small houses with lit windows and chimney smoke, seals are bright coloured gates that crumble into sparkles when opened. Trees sway, critters wander and ponds have pets. Reaching the sanctum bursts into stars and confetti; a lost run turns the world red and dark, with a rain cloud and the pilgrim collapsed.",
        "vsPublic": "DC22 is the closest: on its first levels each coloured button changes every floor piece of its colour, but you click it on a side panel with its pieces on the same screen, and G50T’s floor plates are each joined to their gate by a line of the same colour. In SE01 a shrine never shows its colour, and after the first level its gates are always somewhere else, so you only learn what it did by travelling back to look. G50T and TU93 have patrols that kill you and hold still when you bump a wall; here patrols kill you too, but a bump lets them step, so you can spend moves to wait them out."
      }
    },
    {
      "id": "bs02",
      "class_name": "Bs02",
      "path": "games/bs02.py",
      "sha256": "dbe68e8e32b5610bd20dac261cae10998806958b6d5acac4bc5eb2ea5f3f4698",
      "levels": 8,
      "human": null,
      "preview": "previews/bs02.png",
      "media": {
        "play": "previews/bs02.png",
        "levels": "previews/bs02-levels.png"
      },
      "tiles": 8,
      "inputs": [
        1,
        2,
        3,
        4
      ],
      "play": "https://arc3.sonpham.net/games/bs02",
      "spoiler": {
        "teaser": "Bell Stealth. Ring the bells to drive the guards onto the pads, and don't get caught.",
        "hard": "You never touch the guards. You herd them by choosing which bell to ring, and they also hold the plates down and kill you if you stand beside them. Pips flow between neighbours by height, and you only get so many moves on each level, shown as the yellow bar along the bottom. In the family of G50T, where something other than you holds the plate and can catch you.",
        "rules": [
          "You are the black figure. The arrow keys move you one square; there is no other control and no undo, and every press is a turn, even walking into a wall or the edge, which is how you wait. Every press also uses up one step of the yellow bar along the bottom; when it runs out you fall and the run ends, and a reset gives you a full bar.",
          "Step on a bell to ring it. From then on every red guard walks one square per turn toward the bell you rang last by a shortest route, waiting in line if another guard is in the way; in the first two levels the pad is itself a bell.",
          "A guard that ends a turn on your square or right beside you, though not diagonally, catches you and the run ends; a reset restarts the level. Pink checks mark every square where that would happen next turn.",
          "Each guard carries pips, shown in white on its belly like a die face, and each plain round pad shows in black pips how many it needs; the bell pads of the first two levels need one. A guard carrying at least that many lights the pad it stands on, and while every pad is lit the door opens and you walk in to win.",
          "The hidden rule: pips spill between guards standing side by side, though not diagonally. When one guard’s pips plus its ground height are two or more above its neighbour’s, one pip hops across, so ground matters: blue is low, green is middle, and the yellow blocks under the bells are high.",
          "Later levels add more guards and pads, sunken blue ground you can still walk on, a rock wall with one gap and a dead-end corridor with the bell at its far end."
        ],
        "special": "Every thing on screen is a named, whole sprite; each level has its own backdrop, props that sway, blink and drift, a wandering critter and a flyer, and the castle level got a fresh palette in the last pass. The rules, levels and move counts are exactly the old game's.",
        "look": "One world per level, all in bright flat console colours: a sunny flower meadow with a fence frame, orange dusk dunes with cacti and bones, a blue-white snowfield with igloos and a penguin, a green jungle with vines and sunflowers, a blue crystal cave with glowing facets, a volcano with basalt columns and flames, a harbour of planks and crates over blue water, and now a violet-stone castle with a blue brick frame and gold banners (no longer all pink). Guards, you, the bells and the door are drawn as little characters with faces; a win shows cheers and a star burst, a loss turns the world dark with rain and laughing guards.",
        "vsPublic": "Closest are WA30, where helpers take a step every time you act and haul crates into bays on their own routine, and G50T, where a ghost copy of you holds a plate down while patrols kill you if they land on your square. Here the plate-holders are the same creatures that kill you, standing beside one is as deadly as standing on it, and you steer them only by which bell you rang last. VC33 moves liquid between tanks, but only when you click a pump; here the pips pass between neighbouring guards on their own, by count and ground height together."
      }
    },
    {
      "id": "wf03",
      "class_name": "Wf03",
      "path": "games/wf03.py",
      "sha256": "a6f56b0b0bacf6ec5143e747dde62727ab7b49d6ea5ac9b22ee3a633a8d1b052",
      "levels": 8,
      "human": null,
      "preview": "previews/wf03.png",
      "media": {
        "play": "previews/wf03.png",
        "levels": "previews/wf03-levels.png"
      },
      "tiles": 8,
      "inputs": [
        5,
        6
      ],
      "play": "https://arc3.sonpham.net/games/wf03",
      "spoiler": {
        "teaser": "Water Flip. One lever flips every pipe. Fill each tank to the line.",
        "hard": "One lever flips every pipe of a colour at once, so each click is a decision about a whole circuit. After each match the marks move but the water stays, so how you finish one delivery sets up the next. Same idea as DC22's switch: one control changes many pieces.",
        "rules": [
          "A row of black tanks holds blue water in stacked blocks, and white dashes in each tank mark how full it should be.",
          "Pipes arch over the tanks with a wheel on top of each. Click a wheel to pour one block along that pipe, or two if the pipe has a stripe down its middle. The wheel shows one or two blocks of water on the side it will leave from.",
          "Press space or click the lever at the bottom to reverse every pipe of that colour at once. From level 5 the pale pipes with white wheels get a second lever, and only a click moves it.",
          "A pour is refused when the tank it drains holds less than the pipe carries, or the tank it fills has no room. The wheel turns red and shakes, and the tank in the way gets a red rim.",
          "When every tank sits exactly on its marks, a dot at the top turns green and new marks appear, with the water left where it is. Finish every dot to clear the level. A yellow column at the left edge loses one block for every press or click, misses included; if it runs out first, the run is lost, and a reset starts the level again with it full.",
          "Later levels add short tanks that hold only two blocks, two-block pipes, a high pipe that joins the end tanks into a ring, nearly full tanks and up to four deliveries."
        ],
        "special": "In the pictures, it is the same game as before with every part drawn as its own named sprite, and a different world, palette and slow background life on each of the eight levels, with no grey and no writing anywhere. It is far longer and richer than the plain tank-and-pipe original.",
        "look": "Every level is its own place with its own sky, ground and tiny creature with a face. 1 sunny meadow with a windmill and a farm animal; 2 purple crystal cave with bats; 3 harbour with a lighthouse and a far sailboat; 4 desert with a vulture and a lizard; 5 night city with a moon and a shooting star; 6 jungle with vines, parrots and butterflies; 7 snowfield with mountains and aurora; 8 volcano with lava bubbles. Tanks are glass with rivets and shaded water, pipes are shaded copper with a light pulse running along them, the wheels are chunky yellow buttons and the flow lever has a little face. The creature cheers when a delivery lands and droops under a rain cloud when the run is lost. A win shower of rays and confetti plays when a level clears.",
        "vsPublic": "VC33 is the closest: it also moves liquid between tanks by clicking, but every wall there has a pump on each side, so each click picks its own direction, the goal is a single finished board, and a click budget can lose the level. WF02 hands direction to a lever shared by a whole circuit, moves loads of one or two blocks, can carry water round a ring, chains up to four sets of marks with the water carried over, and like VC33, has a click budget that ends the run when it runs out. SP80 also pours, but there you place bars to steer falling liquid into cups instead of sharing out a fixed amount of water between tanks."
      }
    },
    {
      "id": "st02",
      "was": [
        "hc01"
      ],
      "class_name": "St02",
      "path": "games/st02.py",
      "sha256": "e22feb8d679624bad9f76d2222bec05966692cb61ed85452cd57c0d7ffe7f2db",
      "levels": 8,
      "human": null,
      "preview": "previews/st02.png",
      "media": {
        "play": "previews/st02.png",
        "levels": "previews/st02-levels.png"
      },
      "tiles": 8,
      "inputs": [
        3,
        4,
        5,
        6
      ],
      "play": "https://arc3.sonpham.net/games/st02",
      "spoiler": {
        "teaser": "Shadow Topple. Turn the light and the blocks topple along their shadows into the holes.",
        "hard": "You never push a block. You turn the light and click one, and its shadow decides where it lands. A bot looks for a piece to push and finds none. Like TN36, you never touch the thing that moves.",
        "rules": [
          "A light sits on one edge of the board, and every green block casts a shadow away from it. Touching squares of the same height count as one block.",
          "Turn the light with the left and right arrows (space turns it the same way as right), then click a block. It falls over along its shadow and is gone, and every hole under the shadow gets one step shallower.",
          "A shadow reaches as far as the block is tall, and further across holes, so filling a hole also shortens the shadows that cross it. A wall or the edge of the board just cuts a shadow short, but a block whose shadow has nowhere to land cannot fall.",
          "A block may only fall if its whole shadow lands in holes. The board shows this before you click: those holes turn purple, and a shadow that would be refused is drawn dotted.",
          "Leave the board flat, with no holes and no blocks, to clear the level. Every turn of the light and every click uses up a bit of the white bar under the board; when it runs out the board flashes red and the run ends, and a reset starts the level again with a full bar.",
          "Later levels add holes two deep that need a fall from each side, short blocks that can fall two ways where only one leaves the right run of holes for a tall block, and walled rooms that all share one light."
        ],
        "special": "In the pictures, every board square, the sun, the burning-fuse counter, the dust and every little creature is its own drawn piece, blocks and holes show height with dice dots, and every world has its own frame border and wall material, none of it using words or grey.",
        "look": "Eight storybook worlds, each with its own floor, walls, frame and small living things that do nothing. Level one is a sunny meadow farm with trees, a cottage and flowers. Level two is a snowfield with penguins, a snowman and an igloo. Level three is a lava cave with torches, glowing ore and skulls. Level four is a toy workshop with cogs, balloons and toy stacks. Level five is a desert with totems, a scarab and cactus. Level six is candy land with cupcakes, lollipops and rolling gumdrops. Level seven is an ocean floor with fish, bubbles, swaying weed and a shipwreck. Level eight is deep space with rockets, planets, a comet and a saucer. The sun has a face that smiles, turns sad and weeps under a rain cloud on a loss. Beating a level showers confetti.",
        "vsPublic": "None of the public write-ups describes a light or shadows. The nearest are KA59, where you knock pieces into frames they fit, and BP35, where a red block flips which way the world pulls you. ST01 never moves a piece by hand: its one direction control re-aims every block on the board at once and decides where each one will land."
      }
    },
    {
      "id": "bl02",
      "class_name": "Bl02",
      "path": "games/bl02.py",
      "sha256": "caffa078542bcc6e01024ff3813017543b24596f9b39d51645ee93a021b17ea5",
      "levels": 8,
      "human": null,
      "preview": "previews/bl02.png",
      "media": {
        "play": "previews/bl02.png",
        "levels": "previews/bl02-levels.png"
      },
      "tiles": 8,
      "inputs": [
        1,
        2,
        3,
        4,
        5,
        6,
        7
      ],
      "play": "https://arc3.sonpham.net/games/bl02",
      "spoiler": {
        "teaser": "Basket Lift. Get the fruit to the basket on lifts that weigh you.",
        "hard": "Down doesn't mean down. It tips the scale: you stand on a pan, the lighter side goes up and the heavier side goes down, and you count as one block while every fruit you carry adds two or three. On the first level you rise when your hands are empty and sink once you're holding an apple. Later the Up key flips gravity and a lever turns blue crystal blocks solid. A bot that mashes the arrow keys never works out that the weights are doing the moving.",
        "rules": [
          "Left and right walk the farmer one square at a time. He stays on the ground, ledges and pans, and can't step off an edge into the air.",
          "Space picks up a fruit next to him, or drops what he's carrying into the basket when he's next to it. With empty hands beside the basket, Space takes a banked fruit back out, heaviest first. Clicking a fruit, the basket or the lever does the same job.",
          "Down is the lift. The lifts are pairs of pans hung over pulleys, with grey weight blocks hanging under one side. Press Down while standing on a pan and the scale tips one step: the heavier side sinks, the lighter side rises, and if they match nothing moves. The farmer weighs one block, a carried fruit adds two or three, and the grey blocks count too.",
          "A bar along the bottom is your allowance, 320 presses a level. Every press spends one, refused moves included. Empty the bar and you've lost the level. Undo puts the scene back but not the press.",
          "On levels four, five, seven and eight, Up flips gravity, so the farmer falls toward the ceiling and walks it. A small leaf on the right edge shows which way is down.",
          "From level six there is a lever and blue crystal blocks. Flip the lever and the crystals go solid: pans, the farmer and fruit can't pass through them, and a fruit inside one can't be picked up. Flip it again and they're gone. The lever won't flip if a crystal would land on you or on a pan.",
          "Clear a level by getting every fruit into the basket with your hands empty."
        ],
        "special": "In the pictures, every level is a different, richly furnished place with small living things that do nothing but add life, and the run-over look now recolours the whole scene instead of just darkening the edges. The rules are identical to the original; only the art changed.",
        "look": "Every level has its own scenery: a sunny meadow with barn, sunflowers and a cow; a pink cherry-blossom orchard with a picnic; a sunset with purple hills and flying geese; a twilight pine camp with a campfire and tent; a rainbow sky with hot-air balloons; a spooky cellar with cobwebs, torches and a spider; a glowing cave with a waterfall and a frog; and a lit-up fairground with a ferris wheel and bunting. The farmer blinks, looks where he walks and cheers or weeps. Fruit has leaves, the pans and pulleys turn, a pet on the shelf watches him, and a burning fuse shows the moves left. A won level bursts into confetti; a lost run turns the whole scene dim red and purple, with a rain cloud over the weeping farmer."
      }
    },
    {
      "id": "kt02",
      "class_name": "Kt02",
      "path": "games/kt02.py",
      "sha256": "2bbbf714ed85f8743b0251f021bca05deda68f3fb504de110175b7357a6fb0a6",
      "levels": 10,
      "human": null,
      "preview": "previews/kt02.png",
      "media": {
        "play": "previews/kt02.png",
        "levels": "previews/kt02-levels.png"
      },
      "tiles": 10,
      "inputs": [
        1,
        2,
        3,
        4,
        5,
        7
      ],
      "play": "https://arc3.sonpham.net/games/kt02",
      "spoiler": {
        "teaser": "Knot Tying. Lay a cord over and under, then pull the knot tight.",
        "hard": "You only find out a knot is wrong when you pull it. Lay the cord, press Space at the finish, and if any crossing has the wrong strand on top the cord snaps back and the run ends; a reset starts the level over. The cord can't touch the same spot twice, it runs straight through crossings, and over or under is decided by which pass came second. So the whole route has to be planned before the first inch goes down. A bot that wanders the slats until it reaches the end will tie the wrong knot.",
        "rules": [
          "The arrow keys lay the cord along the slats from the black start eyelet. It can't leave the slats and can't go back over a spot it already covers.",
          "Space at the purple finish eyelet pulls the cord tight. If every crossing is right the knot holds and you move on. If not, the cord snaps back and the run ends; a reset starts the level again. Space anywhere else does nothing.",
          "Undo takes the cord back one step at a time, as far as the start eyelet, as often as you like, so a dead end never traps you.",
          "At a crossing the cord goes straight through, never turning. Each crossing takes one pass across and one pass up and down, and the second pass is the one that ends up on top.",
          "A blue bar on a crossing says the across strand must end on top. A white bar says the up and down strand must. Every crossing has to be crossed twice, and only the second pass counts.",
          "There are ten levels, from a single winding run with no crossings to a lattice with five."
        ],
        "special": "In the pictures, every object is a separate drawn character with eyes and a mouth rather than specks painted on the screen, each level has its own look and gentle moving life, and this is the much heavier, much longer game next to the original, with the same rules and the same ten levels.",
        "look": "Every level is its own tablecloth with its own weave, edge trim and slat colours. Level one is green meadow cloth with a bear and a bunny and a snail on the edge. Level two is a night quilt with an owl, a moon and fireflies. Level three is purple velvet with a frog and rising hearts. Level four is orange gingham with a cat and a penguin. Level five is a sky picnic with smiling clouds and a bunny. Level six is red tartan with green bamboo slats and an owl. Level seven is a maroon diamond cloth with a cat and a ghost. Level eight is candy magenta with a frog and ice cream. Level nine is a yellow cheesecloth with a bear. Level ten is a black night cloth with bright thread confetti, a bat, a rocket and an owl. Little creatures walk the edges, petals, birds, embers and hearts drift by, and the cord's head has its own faces. A good pull showers the screen with ribbon streamers and sparkles at the finish; a lost run turns everything dim and red, with tears on the faces."
      }
    },
    {
      "id": "kt03",
      "class_name": "Kt03",
      "path": "games/kt03.py",
      "sha256": "068c87ce39f0088db592ab3721acf434b5651f92ca5410c260505f80482a839d",
      "levels": 10,
      "human": null,
      "preview": "previews/kt03.png",
      "media": {
        "play": "previews/kt03.png",
        "levels": "previews/kt03-levels.png"
      },
      "tiles": 10,
      "inputs": [
        1,
        2,
        3,
        4,
        5,
        7
      ],
      "play": "https://arc3.sonpham.net/games/kt03",
      "spoiler": {
        "teaser": "Knot Tying. Lay a cord over and under, then pull it tight. Three pulls a level.",
        "hard": "Which strand ends up on top depends on the order you cross, so you can't judge a knot one crossing at a time. Early levels show you when a crossing goes wrong. Every level after shows less, until from level seven the pull is the only thing that tells you. Three pulls a level, so one bad guess costs a little and three end the run.",
        "rules": [
          "The arrow keys lay the cord along the slats from the black start eyelet. It can't leave the slats and can't go back over a spot it already covers.",
          "Space is a pull, anywhere. The cord tightens from the head back along the route, in purple if nothing is wrong and in magenta if something is. On the purple finish eyelet a good pull holds the knot and moves you on. Anywhere else a good pull changes nothing and costs nothing.",
          "You have three pulls a level, shown as three white lights down the right edge. Each wrong pull puts one out and marks the wrong crossings in pink dashes. The third wrong pull ends the run; a reset starts the level again with three. A pull on the finish while a crossing is still unfinished counts as wrong.",
          "Undo takes the cord back one step at a time, as far as the start eyelet, as often as you like, so a dead end never traps you. Four faint corner dots mark the stop that undo returns to.",
          "At a crossing the cord goes straight through, never turning. Each crossing takes one pass across and one pass up and down, and the second pass is the one that ends up on top. A blue bar on a crossing says the across strand must end on top; a white bar says the up and down strand must.",
          "Big black tiles in the cloth carry a glyph that changes with the state: closed yellow shapes when you are on track (purple on the finish), broken pink dashes when something is wrong (orange when you are stuck with no legal move), open strokes in light blue after an undo and in white after a blocked move. On levels one to three a crossing's bars also turn light blue after one pass, yellow when held and pink and dashed when doomed or failed; on levels four to six only once both passes are in; from level seven only after a pull.",
          "There are ten levels, the same as KT02: from a single winding run with no crossings to a lattice with five."
        ],
        "special": "It is KT02's puzzle with the guesswork taken out. The same ten levels and the same two-pass rule, but the picture now answers back: big glyphs in a made-up script change shape and colour as you go wrong, the cloth turns pink and the creatures swap sides, and the free-running scenery is gone so every change on screen means something.",
        "look": "Every level is still its own tablecloth with its own weave, trim and slat colours, but nothing wanders any more. Open cloth carries big black tiles with a bold glyph: yellow closed shapes when you are on track, pink broken dashes when something is wrong. Levels two and four have a small panel showing the crossing picture each mark asks for beside the glyph it earns. When you go wrong the whole cloth turns pink and magenta, the two creatures on the edges swap ends and the props droop; a good pull on the finish still showers the screen with ribbon and sparkles, and a lost run adds a dark vignette. Three plain white lights down the right edge count the pulls left."
      }
    },
    {
      "id": "xa03",
      "class_name": "Xa03",
      "path": "games/xa03.py",
      "sha256": "676c23cbedd2c7747afb05cb03b1c37547710c3093149f3f48bc1fe5c13a5e74",
      "levels": 6,
      "human": null,
      "preview": "previews/xa03.png",
      "media": {
        "play": "previews/xa03.png",
        "levels": "previews/xa03-levels.png"
      },
      "tiles": 6,
      "inputs": [
        1,
        2,
        3,
        4,
        5
      ],
      "play": "https://arc3.sonpham.net/games/xa03",
      "spoiler": {
        "teaser": "The Crawler. Six big castle rooms, one key that changes colour and shape, locked doors and rune gates, patrols, and a lantern that burns down with every move.",
        "hard": "The world is far bigger than the window, so the plan has to be held in memory: which tile changes the colour, which the shape, which rune lights which gate. A patrol or a guard sends you back to the last lit rune and wipes your key, so a careless walk costs the whole trip. The lantern burns a drop a move, and when it is out the run ends, so wandering is not free.",
        "rules": [
          "Arrow keys walk one square. You carry a key with a colour and a shape, drawn as a gem on your chest. A colour tile changes the colour, a shape tile changes the shape, and a lock opens only when both match.",
          "Standing on a rune lights it. A gate across a hall opens when every rune it waits on is lit. A lit rune is also where you are sent back to.",
          "A crab patrol sends you back to the last lit rune and wipes your key, unless you carry the anchor. A sword fells one crab, once. A guard blocks you unless you hold a sword, and a guard fells any crab it meets.",
          "Boots let you cross rubble. Some pieces on the floor are cursed twins of real ones: they weigh a lot, and a heavy load makes every patrol move twice.",
          "On the later worlds there are two bodies; the fifth key, or walking into the other body, swaps which one you steer.",
          "Reach the doorway with the key it shows. The lantern burns one drop for every move, including the fifth key, and the run ends when it is out."
        ],
        "special": "A game of long routes: the shortest known walk for each world is hundreds of moves. The picture is built from named, faced pieces with a hop, a bump, a lifting gate, a puff when sent back, and an iris that closes on a win or a loss. The lantern's flame shrinks as the oil goes and the edges of the world dim when it is low.",
        "look": "A green meadow inside black-and-maroon brick, with six different moats outside the rooms (a lake, a blossom pond, a night sea, lava, ice and a sky of clouds). Round-faced bodies carry their key as a gem and wear what they have picked up; crabs are magenta, guards are light blue, and a worn trail of footprints runs along every patrol's path.",
        "vsPublic": "An original, not built on one public game, and not yet compared with the public 25 one game at a time."
      }
    },
    {
      "id": "cb01",
      "class_name": "Cb01",
      "path": "games/cb01.py",
      "sha256": "60c0b48c57ddee31a3baf5fefd81a6e30aca246b042d8e42e12799b0a33ecfb0",
      "levels": 6,
      "human": null,
      "preview": "previews/cb01.png",
      "media": {
        "play": "previews/cb01.png",
        "levels": "previews/cb01-levels.png"
      },
      "tiles": 6,
      "inputs": [
        1,
        2,
        3,
        4,
        5,
        6,
        7
      ],
      "play": "https://arc3.sonpham.net/games/cb01",
      "spoiler": {
        "teaser": "A tiny card battler. Drop slow units on a field and watch them walk at three enemy towers. Knock all three down before the wheel runs dark.",
        "hard": "Time only moves when you commit a card, and the wheel never gives a shade back, not even on undo, so every wasted beat is gone for good. The obvious first card is often the wrong one: a unit that walks straight in dies to tower fire, a slow tank has to go early to soak the shots, and a ranged unit can hit a tower from just outside its reach. Which tower a unit goes for depends on the column you drop it in. Plainly: the puzzle is small and exact, so it is only moderately hard for an agent once it has found the controls; the hard part for a newcomer is working out what each unit is for.",
        "rules": [
          "Five cards sit along the bottom, the chosen one raised in a yellow frame. Action 5 flips to the next card and costs nothing. A click inside the light-blue band at the bottom of the field drops that unit in the column you clicked. A click anywhere else does nothing and costs nothing, but the band flashes.",
          "Dropping a card plays one beat: two small steps of the world. Units walk slowly toward the nearest tower and stop to fight whatever is in reach. Towers and guards shoot back. Any arrow key plays one beat with no card dropped, which is how you let the last units finish.",
          "The round wheel in the corner has eight wedges of two shades. One shade goes dark at the end of every beat, and the next one to go is orange. A dark shade never comes back. If every shade is dark and a tower still stands, the level is lost: the wheel and towers flash, and a reset starts the level again.",
          "Walker: cheap, hits once a step. Tank: slow, tough, hits hard but rarely. Archer: fragile, but hits from three squares away, further than a tower's two. Runner: hits twice a step. Red guards stand still and strike anything next to them. In the last level, enemies come out of the gates between the towers, a lit gate shows one coming, and one that reaches the blue band takes a shade off the wheel.",
          "Undo takes back the board and your hand one beat, but never the shade. The wheel flashes so you can see it stayed dark.",
          "Destroy all three towers to clear a level. There are six levels, each teaching one thing: straight to the tower, towers that shoot, reach, a short wheel, three different towers, and the push."
        ],
        "special": "Clash Royale's core in a turn-based box: a hand of cards, units that act on their own, towers to take down, and a clock. There is no regenerating meter and no real-time reflex; time is spent by committing a card. The clock is a wheel, not a number.",
        "look": "A red-and-maroon castle wall across the top with three towers, green field, a light-blue drop band, and a black card row along the bottom with the wheel in the corner. Blue walkers, purple tanks, yellow archers and light-blue runners are yours; red guards and orange pushers are the enemy's. No text."
      }
    }
  ],
  "slippery": "The Slippery Seven are the seven public ARC-AGI-3 games our AI agents fail most: DC22, G50T, M0R0, SC25, SK48, TN36 and TR87.",
  "ranking": {
    "reviewer": "Gemini 3.8 Flash High",
    "date": "2026-11-07",
    "source": "docs/reviews/2026-11-07-featured-fifteen-review.md",
    "note": "Graded as tests for AI agents. KT03, DZ03 and LT05 are newer builds of KT02, DZ02 and LT04, which are the games the review graded; SS01 is the plainer-looking first build of SS02, with the same puzzle and levels. Their places are the graded games' places.",
    "tiers": [
      {
        "name": "Strongest",
        "games": [
          "eh02",
          "bl02",
          "kt03",
          "st02",
          "ss01"
        ]
      },
      {
        "name": "Strong, with a caveat",
        "games": [
          "pt02",
          "dz03",
          "wb03",
          "bs02",
          "te02"
        ]
      },
      {
        "name": "Weaker as tests",
        "games": [
          "wf03",
          "lt05",
          "es02",
          "se02",
          "ff02"
        ]
      }
    ],
    "games": {
      "eh02": {
        "grade": "A+",
        "why": "Looking costs you. Every peek wears away the floor you need to get back, so you can't explore for free."
      },
      "bl02": {
        "grade": "A+",
        "why": "Down doesn't move you down. It drops a counterweight, so heavy carries take you down and light ones take you up."
      },
      "kt03": {
        "grade": "A",
        "why": "Order matters: which strand ends on top depends on which you cross second. A knot you can't judge one crossing at a time."
      },
      "st02": {
        "grade": "A",
        "why": "You never push anything. You turn the sun and the shadows do it. Too many boards to brute force."
      },
      "pt02": {
        "grade": "B+",
        "why": "Fair, readable timing fights. Early levels are easy and the enemies never move, but the late ones have real depth."
      },
      "dz03": {
        "grade": "B+",
        "why": "Rich digging and falling sand. A lot of rules arrive at once, which makes it hard to tell what caused what."
      },
      "wb03": {
        "grade": "B",
        "why": "Steering one boat shoves all the others downwind. The scrolling sea adds searching more than thinking."
      },
      "bs02": {
        "grade": "B",
        "why": "Ring bells to herd the guards. A basic solver clears every level in a blink."
      },
      "te02": {
        "grade": "B-",
        "why": "A cable and a pulley, but each level is small enough to scrub through with unlimited undo."
      },
      "wf03": {
        "grade": "C+",
        "why": "Water-jug puzzle with a twist. Level one falls to five presses of one button, and wrong clicks cost nothing."
      },
      "lt05": {
        "grade": "C",
        "why": "Five munitions and a crowd that moves on hidden beats. Ambitious; what the crowd will do is hard to see."
      },
      "es02": {
        "grade": "C",
        "why": "Spreading an outbreak. People move on hidden beats you can't read from one frame."
      },
      "se02": {
        "grade": "C-",
        "why": "A shrine opens a gate forty steps away, off screen. It tests memory of a long walk, not working things out."
      },
      "ff02": {
        "grade": "D+",
        "why": "Eat the small fry, grow big. A reflex arcade game, not a thinking one."
      },
      "ss01": {
        "grade": "A",
        "why": "Fruit arrives in a fixed line and the obvious placement starves a later order. You have to plan many steps ahead."
      }
    }
  }
}
