- The seven-slot tray IS the game — with unlimited room a child can tap anything and eventually win, which teaches nothing
- Every piece is a real Kidsquare painting from the 149 vocabulary cut-outs already on disk — not one new image was commissioned
- Because the pieces are real things it is a naming game as well as a matching one, instead of a test of colour
- It can genuinely be lost — seven different things ends the round, said plainly, board offered again, and the child is never called anything
- The last two slots are ringed in rose from the start, so the limit is visible before it bites rather than announced when it does
- Every heap verified before any UI (npm run verify:match3): every kind must come in threes, or some piece can never be cleared however well it is played
- The verifier PLAYS each board kind-by-kind to prove it clears, and checks every painting is actually on disk — a match-three whose pieces 404 is a heap of broken images
- Play-tested at 390px: the first heap clears, no vocab 404s, no console errors, no overflow
- The board's own background is gone: the pieces lie on the painted wood itself, instead of inside a blue box cut through the middle of the kitchen
- Pieces come from the TRANSPARENT cut-outs, not the cream-card tiles — a card on painted wood reads as a sticker rather than a thing lying on a table
- One screen, no scrolling: the table is an absolutely-positioned layer over the whole stage and the words float clear of its back edge, so a longer line grows UP into the wall instead of pushing the table off the bottom
- Where the tabletop is lives in ONE place (TABLE in lib/matchthree.ts), measured off the plate — and it is the same fraction of every screen, because the plate is wider than any stage that shows it
- A second rule on the same table — หยิบตามคำสั่ง: the card names one thing and you take every one of it, with a listen button. A naming-and-listening game out of pieces that were already painted
- Two players on either rule: turns, a pile each, one shared table, most taken wins
- Two players take TURNS rather than racing — one screen cannot tell two fingers apart, and the child who loses that ambiguity is the one least able to work out why
- With two players the tray limit is off and the table running out is the clock — nobody is knocked out of a game their friend is still playing
- A tap the card did not ask for is answered by SAYING WHAT IT IS, out loud — a child reaching for the banana when the card says apple has told you exactly which word they need
- Two misses in a row and the right pieces start to glow; four and a calm line appears — and the glow is never taken back as a punishment
- The verifier also plays the CARDS to the end, not just the three-of-a-kind route — a card asking for something no longer on the table is a table nobody may legally touch
- The heap is TIPPED OUT rather than laid out — one piece after another, ninety milliseconds apart, dropping from just above the table and bouncing once
- Twice the heap — 18 / 24 / 30 pieces at three, four and five rows of six — with every piece measured in the browser at 390px to prove it still clears the 46px tap floor
- The front row is held back to x ≤ 72: the host stands in the bottom-right corner of a phone, and a piece there is a piece a child taps and gets a teddy bear
- Paint a kitchen table FOR this game — today's plate is the 16:9 kitchen re-cropped, so the top shelf and both far edges fall outside the frameplanned
- A fruit-and-vegetable-only heap, tied straight to the food vocabulary setplanned
✓ = done · ☐ = planned. Every game is built one step at a time like this.