Cross-check: non-bulk perft that makes every single move (validates the bulk-counting assumption itself).
Per-root-move breakdown for debugging.
Convenience wrapper allocating the move buffer.