              (= (:onyx/max-peers entry)
                 (:onyx/min-peers entry)))
         (= (:onyx/max-peers entry) 1))))
+
+(def InputTaskSchema
+  (let [base-input-schema (merge base-task-map partial-input-task)]
+    (s/conditional java?
+                   (merge base-input-schema partial-java-plugin)
+                   :else
+                   base-input-schema)))
 
 (def OutputTaskSchema
   (let [base-output-schema (merge base-task-map partial-output-task)

   UnsupportedWindowKey s/Any})

(def Window
  (s/constrained 
    WindowBase
    (fn [v] (if (#{:fixed :sliding} (:window/type v))
              (:window/range v)
              true))
    ":window/range must be defined for :fixed or :sliding window"))

(def StateAggregationCall
  {(s/optional-key :aggregation/init) Function

                                  :else
                                  (merge base-output-schema partial-clojure-plugin)))))

(def FunctionTaskSchema
  (let [base-function-task (merge base-task-map partial-fn-task)
        java-function-task (merge base-function-task partial-grouping-task partial-java-fn-task)
