pub fn process_input_event(
ev: InputEvent,
ui: &mut UiState,
ctx: &InputContext<'_>,
out: &mut Vec<Action>,
)Expand description
Process one InputEvent. Mutates UiState; appends produced actions
to out. Pure data — does no I/O. The router reads GameState (via
ctx.current for prestige_available() / powerups.iter() and via
ui::hands::occupied_at for misclick gating) but never mutates it; all
mutation flows through the produced Actions and apply_action.