Immutable game state approach api