HEX STACKER · ROTATION DEBUG

Each piece is shown across the rotations rotateCW() actually steps through. Shape-equivalent rotations are deduplicated, and within each equivalence class the rotation whose visual centroid (axial r + q/2) is closest to rot 0's is kept so rotating doesn't push the piece down a row. The anchor is pinned at the grid's centre with ±2 rows of slack so _adjustAnchorRow's downward clamp never has to fire.
anchor cell (axial 0,0) cells[0] — the rotation-keyed marker