                                   (throw
                                     (ex-info
                                       (format "ns \"%s\" not available, required by %s" require-sym name)
-                                      {:ns require-sym
+                                      {:tag ::missing-ns
+                                       :ns require-sym
                                        :src name})))
                                 src-name
                                 )))

                      (filter #(contains? (:requires %) ns-sym))
                      (map :name)
                      (into #{}))]
        (throw (ex-info (format "ns \"%s\" not available, required by %s" ns-sym reqs) {:ns ns-sym :required-by reqs}))))

    (get-deps-for-src state name)
    ))

          nil)))))

(defn write-variable-map [{:keys [cache-dir] :as state} name map]
  (when map
    (let [map-file
          (doto (io/file cache-dir name)
            (io/make-parents))

          bytes
          (ByteArrayInputStream. (.toBytes map))]

      (with-open [out (FileOutputStream. map-file)]
        (io/copy bytes out)))))

(defn closure-add-variable-maps [cc co {:keys [cache-dir] :as state}]
  (when-some [data (read-variable-map state "closure.property.map")]
