Cave
Shade some cells. The unshaded cells — the cave — form one connected group; every shaded wall connects, through walls, to the border; and each number sits in the cave and counts the cells it sees in the four directions, itself included, before a wall or the edge blocks the view. Click a cell to cycle wall → cave → empty; right-click erases. The cave's boundary — drawn live in purple — always closes into a single loop: this puzzle is also sold as Corral, where you draw the fence instead of shading the cells. Same object.
The answers are the hole-free polyominoes
Strip the numbers away and ask what a finished board can look like: a connected cave whose walls all reach the border is exactly a polyomino without holes, and its boundary is a single closed non-crossing loop on the lattice. The correspondence is a bijection — one valid board per simple cycle of the (n+1)×(n+1) grid graph. Counted both ways: 13 boards on 2×2, 213 on 3×3, 9,349 on 4×4, matching the lattice cycle counts (OEIS A140517) exactly.
Rules that leak
A checkered 2×2 — cave on one diagonal, wall on the other — is banned even though no stated rule mentions it: the cave path joining the two cave corners fences one of the wall cells away from the border. Connectivity's local shadow, worth a whole rule set in the solver. Meanwhile the stated rule, the clue arithmetic, is nearly blind on its own: at 10×10 the count rule alone finishes almost nothing — the numbers say how far the cave runs, but only the two connectivity rules know the cave is one room and the walls have doors.
A 3×3 stamp generates every board
Digital image topology calls a cell whose flip preserves the picture's topology a simple point, and recognizes it locally: read the 8 cells around a candidate in a circle (off-grid counts as wall) — the flip is safe exactly when the circle changes color twice and an orthogonal neighbor already has the new color. The generator grows a random seed cell and mixes with thousands of such flips: every intermediate picture is a valid configuration, no global connectivity check is ever run, and no backtracking exists to be needed.