По идее правильный FSM выглядит так:
Сам FSM содержит:
- возможные состояния
- возможные события
- правила перехода состояний: Из какого состояния по какому событию в какое состояние переходить
Ты создаешь FSM с этимим правилами, а дальше пишешь код который умеет юзать текущее состояние и генерировать события.