               :effect (effect (add-prop card :rec-counter -1) (gain :credit 1))}
              (get-in cdef [:abilities ability]))
         cost (:cost ab)]
-    (prn "play-ability" cost)
     (when (or (nil? cost)
               (apply can-pay? state side cost))
         (when-let [activatemsg (:activatemsg ab)] (system-msg state side activatemsg))

  (let [source-def (card-def source)
        source-events (if (:events source-def) (:events source-def) {})
        dest-card (merge dest {:events source-events})]
          (prn "copy-events")
          (prn "source-events" source-events)
          (prn "dest-card" dest-card)
          (update! state side dest-card)
          (register-events state side (:events dest-card) dest-card)
        ))

        (if (not (nil? source-effect)) (source-effect state side source nil))
        (update! state side dest-card))
      )))

(defn fire-leave-play-effects [state side card]
  (if-let [source-leave-play (:source-leave-play card)]
