    (s/optional-key :peer-parent) s/Uuid
    (s/optional-key :entry-parent) s/Int})
 
-(def Reactions 
+(def Reactions
   (s/maybe [LogEntry]))
 
 (def ReplicaDiff
-  (s/maybe (s/either {s/Any s/Any} #{s/Any})))
+  (s/maybe (s/cond-pre {s/Any s/Any} #{s/Any})))
 
 (def State
   {s/Any s/Any})

                                  (merge base-function-task partial-clojure-fn-task)))))

(def TaskMap
  (s/conditional #(= (:onyx/type %) :input) 
                 InputTaskSchema
                 #(= (:onyx/type %) :output)
                 OutputTaskSchema

   s/Keyword s/Any})

(def PeerId
  (s/cond-pre s/Uuid s/Keyword))

(def PeerState
  (s/enum :idle :backpressure :active))

(def PeerSite
  {s/Any s/Any})

(def JobId
  (s/cond-pre s/Uuid s/Keyword))

(def TaskId
  (s/cond-pre s/Uuid s/Keyword))

(def TaskScheduler
  s/Keyword)

(def SlotId
