3 walls + east wall: jam only, no warning
gate is a segment of the east wall (z −1..1): resist → jam, opens/closes
Within Bounds
driftGate() runs on every attempted step
StateOK
Drift0
GateCLOSED
gate🚪