изначально давать значение step: 0, и при каждом переходе к какому то шагу изменять это знание. Нормально?
ну примерно так. И в зависимости от шага (состояния) доступны разные вещи. Конечные автоматы примерно про это и есть, почитай
Да, и при вызове команды проверять состояние юзера. Если не в разрешённых - игнор
Лучше именованные шаги.
Обсуждают сегодня