 
 (defmulti save-criteria-content! content-type)
 
-(defmethod save-criteria-content! :blank [_ _]
+(defmethod save-criteria-content! :blank [_ _ & _]
   (throw (Exception. "badge/MissingCriteriaContent")))
 
-(defmethod save-criteria-content! :url [ctx input]
-  (save-criteria-content! ctx (with-meta (u/http-get input) {:url input})))
+(defmethod save-criteria-content! :url [ctx input & _]
+  (save-criteria-content! ctx (u/http-get input) {:url input}))
 
-(defmethod save-criteria-content! :html [ctx input]
-  (save-criteria-content!
-    ctx (with-meta {:id ""
-                    :html_content input
-                    :markdown_content (alt-markdown input)}
-                   (meta input))))
+(defmethod save-criteria-content! :html [ctx input & more]
+  (let [input-meta (or (meta input) (first more) {})]
+    (save-criteria-content!
+      ctx (with-meta {:id ""
+                      :html_content input
+                      :markdown_content (alt-markdown input)}
+                     input-meta))))
 
-(defmethod save-criteria-content! :default [ctx input]
+(defmethod save-criteria-content! :default [ctx input & _]
   (s/validate schemas/CriteriaContent input)
   (let [id (content-id input)]
     (insert-criteria-content! (assoc input :id id) (u/get-db ctx))

                     (map :attrs link-tags))]
    (try (u/http-get md-url) (catch Exception _ ""))))

(defn- content-type [_ input]
  (cond
    (map? input)          :default
    (string/blank? input) :blank


(defmulti save-creator-content! content-type)

(defmethod save-creator-content! :blank [_ _ & _]
  (throw (Exception. "badge/MissingCreatorContent")))

(defmethod save-creator-content! :url [ctx input & _]
  (save-creator-content! ctx (u/http-get input) {:json-url input}))

(defmethod save-creator-content! :json [ctx input & more]
  (let [input-meta (or (meta input) (first more) {})
        data (json/read-str input :key-fn keyword)]
    (save-creator-content!
      ctx (with-meta {:id ""
                      :name        (:name data)
