но, кажется, что пока правильно иду:
есть обновляемое по таймеру состояние
пользователь может изменить флажок и тогда таймер будет накидывать время не в aCounterField, а в bCounterField
так же можно пойти в следующее состояние, но предварительно надо убедиться, что все изменения этого состояния отправлены на сервер (как раз что-то вроде дифа - снапшоты), а уже после переходить - для этого нужен еще флажок, по которому можно будет отправить пользователя на следующее состояние, если очередь отправки опустела 🌚
собственно, можно ActiveState и PausedState выделить явно, но в остальном без флажка никак 🙁
Если у тебя есть некий таймер и нужно его значения синхронизировать с серваком(если я задачу правильно понял), всегда будет оставаться вероятность что будет рассинхрон, тут уж ничего не поделаешь. А само наличие одного флажка в состоянии не говорит что все плохо спроектировано имхо, скорее если все состояние из флажков состоит, вот тут да, уже звоночек.