             agw (make-ago-world num-worlds)
             get-agw (fn [] agw)
             event-ch (ago-chan agw)
+            event-run-ch (chan)
             make-timeout-ch (fn [actx delay] (ago-timeout agw delay))
             ; Init the top actx manually to avoid act recursion.
             w [{:gen-id gen-id

                            :clients {}
                            :res-ch (achan-buf world 10)})
        (cbfg.vis/process-events vis event-delay cbfg.vis/vis-event-handlers
                                 event-ch step-ch delayed-event-ch)
        (cbfg.vis/process-render el-prefix world delayed-event-ch delayed-event-cb)
        (make-net world
                  (:net-listen-ch @prog-world)
                  (:net-connect-ch @prog-world))

                (when (= actx-id (last actx))
                  (swap! vis #(assoc-in % [:actxs actx :collapsed]
                                        (not (:collapsed actx-info))))
                  (>! event-run-ch [@vis nil true nil])))
              (recur)))
          (<! prog-ch)
          (close! expand-ch)
          (close! cmd-ch)
          (close! req-ch)
          (close! event-ch)
          (close! event-run-ch)
          (recur (inc num-worlds)))))))

; --------------------------------------------
