Rename first_blocked_moved_from test case.
Update move_piece to replace piece if a BoardIndexError is raised.
Fix use of _hard_place_piece. Reformat exception strings.
Add test for circling pawn. Fix test for surrounding pawns.
Group like tests. Add tests for layered circles and staggered circles for get_first_blocked_space_from.
Add bucket for all pieces.
Mend docstrings. Fix en passant logic in cache generation for Pawns.
Modify definition of Pawn __init__ and its call to Piece __init__ for maximum extensibility.
Fix Pawn's generate_actual_cache. Begin implementing Rook's generate_actual_cache.
Finish fixing Pawn's generate_actual_cache method.
Minor optimization to Pawn's generate_actual_cache.
Refactor first_blocked_space_from to take advantage of buckets and to return the piece blocking the space, rather than the space's coordinates.
Rename first_blocked_space_from to first_blocking_piece to reflect change in logic.
Refactor first_blocking_piece tests to account for change in return value.
Complete initial actual cache generation for Rook.
Add test for Knight actual_cache generation when enemies are present. Update Knight tests to reflect generate_cache API change.
Update piece tests to reflect API changes.
Fix Pawn actual_cache generation: no longer attempts to access off-board spaces.
Update Pawn cache tests.