• The youngest thing on the site: landing one finger on a moving target IS the whole task
  • The frog never misses and nothing is timed — a tongue that missed would turn a first success into a failure a child this age cannot diagnose
  • The difficulty lives in the ROUND, not the tap — all of them, only that colour, only the small ones: holding a rule while your hand is busy
  • A wrong tap is answered rather than ignored — the frog looks and turns away, because a tap that did nothing reads to a three-year-old as a broken screen
  • The layouts are written down rather than randomised — a random board can stack two insects, which at this age reads as one
  • Every round verified before any UI (npm run verify:frog): something to catch, something to leave alone, and no pair that will drift into each other
  • The check caught two pairs that would have overlapped in flight (d2/d4, f1/f5) — it measures the gap against how far each one drifts, not just where it starts
  • Play-tested at 390px: the round clears, the next button appears, no console errors, no overflow — 46px minimum tap target
  • The frog and the insects are Kidsquare's own watercolour paintings now — every SVG stand-in is gone
  • One frog in four poses (sit · crouch · leap · open) cut from a single sheet at ONE scale and ONE foot line, so hopping never makes it swell or shrink
  • Four insects with genuinely different silhouettes rather than one picture in four colours — and verify() holds the rounds to the colour each one is actually painted
  • The board IS the painted garden now, not a gradient box — the frog hops along the lawn at the pond's edge and the insects fly in the treetops
  • A Google Flow loop of the same painting lies over it — leaves sway, the pond moves — and a reduced-motion device never downloads it at all
  • The same garden painted twice, 16:9 and 9:16 — a phone gets the whole tall painting rather than a crop of the wide one (a crop puts the frog in the pond), each with its own loop
  • A round is written ONCE and place() spreads it over whichever garden is on screen — a new round never needs two sets of coordinates
  • The insects fly a butterfly loop instead of sliding — banking into the turns, beating their wings, with a quick bob riding on top. The loop is written in percentages of the INSECT, so one set of numbers works on a phone and a laptop alike
  • The check now measures the BOX each insect flies around (half its loop plus half of itself) and forbids two boxes overlapping on both axes, on both gardens — rather than just measuring how far apart they start
  • A tapped insect stops flying at once and the tongue aims at where it actually IS, read off the live box — aiming at the written position would shoot past the child's finger by most of an insect
  • The garden reaches every edge of the screen with nothing cropped away — the composed plate is contained and centred, and the strip left over is filled by the same painting blown up and blurred. Every word floats over it
  • The garden's movement is halved on the owner's call: the loop plays over the still painting at 0.5 opacity — one number, instantly tunable — and 1.6× slower
  • The 46px tap target is decoupled from the drawing — when the floor applied to the art, a small insect on a phone inflated to 46px and a big one reached only 49, so "catch only the big ones" asked a child to tell apart two things the same size
  • On the third wrong tap the game stops asking and starts helping — the ones to catch take a warm glow and the line invites a breath (the Kidsquare Rule)
  • Add the count and superlative rules (three of them, the biggest one) — the engine already supports the shapeplanned

✓ = done · ☐ = planned. Every game is built one step at a time like this.