         context (get-in job (take n-deep (:path error-data)))        
         entry (get-in model [(structure-names structure-type) :model faulty-key])
         match-f (match-map-or-val error-data)
-        msgs (type-error-msg faulty-val found-type expected-type)
+        msgs [(join " " (into ["Value must be"] (type-error-msg faulty-val found-type expected-type)))]
         error-f (display-err-map-or-val msgs)]
     (show-header structure-type faulty-key)
     (show-value context (- path-len n-deep) match-f error-f)

    (:predicate error-data)))

(defn type-error-msg [err-val found-class req-class]
  [(str (pr-str err-val) " isn't of the expected type.")
   (str "Found " (.getName found-class) ", requires " (.getName req-class))])

(defn restricted-value-error-msg [err-val]
  [(a/magenta (str "^-- Task name " (pr-str err-val) " is reserved by Onyx and cannot be used."))])

(defn chain-phrases [phrases]
  (case (count phrases)


(defmethod predicate-error-msg 'pos?
  [entry error-data]
  [(str (last (:path error-data)) " must be positive.")])

(defmethod predicate-error-msg 'deprecated-key?
  [entry error-data]
  [(str (last (:path error-data)) " has been deprecated and removed from the Onyx API.")])

(defmethod predicate-error-msg 'range-defined-for-fixed-and-sliding?
  [entry error-data]
  [(str (semantic-error-msgs :sliding-window-needs-range-and-slide))])

(defn missing-required-key* [job context error-data structure-type]
  (let [faulty-key (:missing-key error-data)
