phase phase#1 "preflight"
phase phase#2 "attempt"
phase phase#3 "gate"
phase phase#4 "checkpoint"
phase phase#5 "recover"
phase phase#6 "wrap-up"
node phase#1@1 mark phase=phase#1
node world-read#2@1 issue site=world-read#2 phase=phase#1
node world-read#3@1 issue site=world-read#3 phase=phase#1
node world-read#1@1 issue site=world-read#1 phase=phase#1
node phase#2@1 mark phase=phase#2
node ask#1@1 issue site=ask#1 phase=phase#2
node phase#3@1 mark phase=phase#3
node world-read#4@1 issue site=world-read#4 phase=phase#3
node world-read#1@2 issue site=world-read#1 phase=phase#3
node phase#4@1 mark phase=phase#4
node world-read#5@1 issue site=world-read#5 phase=phase#4
node phase#5@1 mark phase=phase#5
node world-read#6@1 issue site=world-read#6 phase=phase#5
node ask#2@1 issue site=ask#2 phase=phase#5
node phase#6@1 mark phase=phase#6
node world-read#7@1 issue site=world-read#7 phase=phase#6
edge entry -> phase#1@1 next
edge phase#1@1 -> world-read#2@1 next
edge world-read#2@1 -> world-read#3@1 branch
edge world-read#2@1 -> abort throw
edge world-read#3@1 -> world-read#1@1 branch
edge world-read#3@1 -> phase#2@1 branch
edge world-read#3@1 -> phase#5@1 exit
edge world-read#3@1 -> phase#6@1 exit
edge world-read#3@1 -> abort throw
edge world-read#1@1 -> phase#2@1 join via=return
edge world-read#1@1 -> phase#5@1 join via=return
edge world-read#1@1 -> phase#6@1 join via=return
edge phase#2@1 -> ask#1@1 next
edge ask#1@1 -> phase#3@1 next
edge phase#3@1 -> world-read#4@1 next
edge world-read#4@1 -> phase#2@1 loop
edge world-read#4@1 -> phase#2@1 loop via=continue
edge world-read#4@1 -> world-read#1@2 branch
edge world-read#4@1 -> phase#4@1 branch
edge world-read#4@1 -> phase#5@1 exit
edge world-read#4@1 -> phase#5@1 loop
edge world-read#4@1 -> phase#6@1 exit
edge world-read#1@2 -> phase#2@1 loop
edge world-read#1@2 -> phase#4@1 join via=return
edge world-read#1@2 -> phase#5@1 join via=return
edge world-read#1@2 -> phase#5@1 loop
edge world-read#1@2 -> phase#6@1 join via=return
edge phase#4@1 -> world-read#5@1 next
edge world-read#5@1 -> phase#2@1 loop
edge world-read#5@1 -> phase#5@1 exit
edge world-read#5@1 -> phase#5@1 loop
edge world-read#5@1 -> phase#6@1 exit
edge world-read#5@1 -> abort throw
edge phase#5@1 -> world-read#6@1 next
edge world-read#6@1 -> ask#2@1 branch
edge world-read#6@1 -> abort throw
edge ask#2@1 -> phase#2@1 loop
edge ask#2@1 -> phase#5@1 loop
edge ask#2@1 -> phase#6@1 exit
edge phase#6@1 -> world-read#7@1 next
edge world-read#7@1 -> sink jump via=return
phase-edge entry -> phase#1 next
phase-edge phase#1 -> phase#2 branch
phase-edge phase#1 -> phase#2 join via=return
phase-edge phase#1 -> phase#5 exit
phase-edge phase#1 -> phase#5 join via=return
phase-edge phase#1 -> phase#6 exit
phase-edge phase#1 -> phase#6 join via=return
phase-edge phase#1 -> abort throw
phase-edge phase#2 -> phase#3 next
phase-edge phase#3 -> phase#2 loop
phase-edge phase#3 -> phase#2 loop via=continue
phase-edge phase#3 -> phase#4 branch
phase-edge phase#3 -> phase#4 join via=return
phase-edge phase#3 -> phase#5 exit
phase-edge phase#3 -> phase#5 join via=return
phase-edge phase#3 -> phase#5 loop
phase-edge phase#3 -> phase#6 exit
phase-edge phase#3 -> phase#6 join via=return
phase-edge phase#4 -> phase#2 loop
phase-edge phase#4 -> phase#5 exit
phase-edge phase#4 -> phase#5 loop
phase-edge phase#4 -> phase#6 exit
phase-edge phase#4 -> abort throw
phase-edge phase#5 -> phase#2 loop
phase-edge phase#5 -> phase#5 loop
phase-edge phase#5 -> phase#6 exit
phase-edge phase#5 -> abort throw
phase-edge phase#6 -> sink jump via=return
