While it's powerful enough to have
Machine.transition, it can get tedious constantly passing it a state and an event. It would be nice if we had a function that could take a machine, instantiate it, maintain the state of the machine, and give us the ability to send events to it.
This is where an interpreter comes in handy.
And interpreter takes the abstract machine and brings it to life. XState provides us a function,
interpret, to do this.
interpret returns to us a service and we can use that service to send events, subscribe to changes, and add callbacks to events such as