Rearrange for legibility
Extract filter into individual function
Make render_slot a regular function for better testing
Extract slot into separate file and add tests
Add a little benchmark for the first move
Rename next to next_player in GameMode
Minor cleanups for empty lines.