         {:player (:player game)
          :turn (:turn game)
          :target pair-cell
-         :focus false})
+         :focus *speculative*})
       ;; update the entangled spooky mark
       (update-in [:board pair-cell :entanglements pair-subcell] assoc
-        :focus false
+        :focus *speculative*
         :target cell)
       ;; remove the pair tracker
       (dissoc :pair)

(defn speculate
  "Make a play, but store the previous game state so the 'play' can be easily reverted"
  [game cell subcell]
  (-> game
    (play cell subcell)
    (assoc :base game)))

(defn unspeculate
  "Restore the previous game state (if there was one)."


(def num-cells 9)
(def num-players 2)

(def ^:dynamic *speculative* false)

(comment
  ;; Game Data Structures
