Stamp and invert
Each tap places the stamp on the board. Every filled cell in the brush toggles under it: empty becomes filled, filled becomes empty. Two stamps on the same cell cancel. At the edges the brush is clipped.
Match the objective
A small target grid shows the pattern to reproduce. Your board starts empty or partially filled; undo and reset keep the loop tight while you chase fewer touches.
Logic in the model
Level rules and XOR recalculation live in domain models. Cubits load the level list; a BLoC owns the play session. Progress persists locally so you can pick up where you left off.
