 (s/def ::taken (s/coll-of ::board/coord))
 (s/def ::winner ::player/player)
 (s/def ::looser ::player/playable-cell)
-(s/def ::conversion  (s/keys :req-un [::point ::taken ::winner ::looser]))
+(s/def ::conversion (s/keys :req-un [::point ::taken ::winner ::looser]))
 (s/def ::available-moves
   (s/map-of ::player/player
     (s/map-of ::board/coord



#_(s/fdef all-available-moves
  :args (s/tuple ::board/board)
  :ret ::available-moves)

#_(s/fdef apply-conversion
  :args (s/tuple ::board/board ::conversion)
  :ret ::board/board)


(defn all-available-moves

  (dissoc
    (transduce
      (mapcat #(available-conversions-at board %))
      #(update-in %1 [(:winner %2) (:point %2)] conj %2)    ;; TODO - List of conversions
      {}
      (board/empty-cells board))
    nil))                                                   ;; TODO - find why we have nil
