pub fn run_with_controller<R>( game: &mut GameState, player: PlayerId, controller: Option<PlayerId>, f: impl FnOnce(&mut GameState) -> R, ) -> R