 
 
   (comment
-    (play sm)
+    (transition sm)
     (->> sm
-         (iterate play)
+         (iterate transition)
          (take-while #(not= :machina/stop (:state %)))
          #_(map :data)
          last


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;                                                                            ;;
;;                        ---==| C O U N T E R |==----                        ;;
;;                                                                            ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;





(defn write-to-file [f]
  (spit f
        (str (java.util.Date.) \newline)
        :append true))


(comment
  (defn empty-machine
    "defines a empty state machine which only goes from start->stop"
    []
    {:state :machina/start

     :transitions {:machina/start [:machina/no-op :machina/stop]}})



  (defn configure-machine [sm fns]
    (-> sm
        ;; turn the list of states and transitions into a map
        (update :transitions (fn [ts]
                               (->> (map (fn [[s0 t s1]] [s0 [t s1]]) ts)
                                    (into {})))))))


;;(configure-machine (empty-machine))
