...
Events pushed by the player async using the EventEmitter. These are to
abstract out the side effects of state mutation from the renderer.
This also allows for external mutations outside of renderer to happen.
This also helps when in the use cases where the renderer mutates the state through some other means - like an webhook response which can be hooked up with the APIs exposed by player.
APIs exposed by the player to mutate the state by the renderer.
This follows a unidirectional approach to update state rather than the bidirectional one to reduce complexity in debugging. So the renderer updates state using the Player API and the player then schedules any events if needed due to star.
...