There are some issues with the state machine, mostly caused by the asynchronous behavior of the MiR API. It doesn't report itself as executing until a brief delay after a mission has been posted. This messes with some of the state machine's logic and causes the state machine to jump forward too quickly.
I think a more manageable strategy will be to create a dictionary that maps from mission names to update callbacks. When we see the current mission that MiR is on, then we simply pull the relevant callback out of the dictionary and trigger it.
There are some issues with the state machine, mostly caused by the asynchronous behavior of the MiR API. It doesn't report itself as executing until a brief delay after a mission has been posted. This messes with some of the state machine's logic and causes the state machine to jump forward too quickly.
I think a more manageable strategy will be to create a dictionary that maps from mission names to update callbacks. When we see the current mission that MiR is on, then we simply pull the relevant callback out of the dictionary and trigger it.