                                           state)
                                                                :normal          false]
                            :escape     [identity               :quit?           false]}
+               :direction-select
+                          {:escape     [identity               :normal          false]
+                           :else       [do-selected-direction  identity         false]}
                :action-select
                           {:escape     [identity               :normal          false]
                            :else       [do-selected-action     identity         false]}

    :pickup
    :harvest
    :magic-direction
    :close})

(defn update-state

          (rw/assoc-current-state :normal))
      (= (count directions) 1)
        (-> state
            (close-door (first directions))
          (rw/assoc-current-state :normal))
      :else
        (rw/assoc-current-state state :close))))

(defn directions-to-actions
  [state]
  (let [pickup-directions (pickup-directions state)
        _ (log/info "pickup directions" (vec pickup-directions))
