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