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



#_(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

         taken []]
    (let [cell (board/get-cell-at board coord)]
      (cond
        (is-not-convertible? cell) nil                      ;; No move: reached end and only 1 type of cell
        (and looser (not= looser cell)) {:winner cell       ;; Who wins the cells
                                         :looser looser     ;; Who looses the cells
                                         :point init-coord  ;; The move performed
                                         :taken taken}      ;; The cells taken
        :else (recur
                (next-coord coord)
                cell
