TurnstileFSM State Chart TurnstileFSM State Map Start Event[Guard] Target Action LOCKED COIN UNLOCKED { unlock() } UNLOCKED <<timeout = 3000>> LOCKED { timeout() returnCoin() } UNLOCKED PASS LOCKED { lock() } UNLOCKED COIN UNLOCKED { returnCoin() }