pub fn apply_action( state: &mut GameState, action: Action, geom: &mut SimGeometry, )
Apply one Action to the canonical GameState. Pure data: no I/O, no time, no threading. Called from both the native sim thread (on mpsc::recv_timeout returning Ok) and the web rAF loop.
Action
GameState
mpsc::recv_timeout