Rewrote PlayerInputState as a record to be more consistent