           :anon-fn-naming-policy     (ref-schema 'AnonFnNamingPolicy)
           :optimize-constants        (ref-schema 'Boolean)
           :parallel-build            (ref-schema 'Boolean)
-          :devcards                  (ref-schema 'Boolean)})
+          :devcards                  (ref-schema 'Boolean)
+
+          :dump-core                 (ref-schema 'Boolean)
+          :emit-constants            (ref-schema 'Boolean)
+          
+          :warning-handlers          [anything?]
+          :source-map-inline         (ref-schema 'Boolean)
+          :ups-libs                  [string?]
+          :ups-externs               [string?]
+          :ups-foreign-libs          [(ref-schema 'ForeignLib)]})
+    (spec 'ForeignLib {:file string?
+                       :provides [string?]
+                       :file-min string?
+                       :requires [string?]
+                       :module-type (ref-schema 'ModuleType)
+                       :preprocess (ref-schema 'Named)} )
    (or-spec 'CompilerWarnings
             (ref-schema 'Boolean)
             CompilerWarningsSpec)


(comment
  ;; figure out
  (defn get-all-keys [rules]
    (for [[k & ks] (rules :-)] k))

  (distinct
   (for [k (get-all-keys schema-rules)
        k2 (get-all-keys schema-rules)
         :when (and
                (not= k k2)
                (tc/similar-key 0 k k2))]

                                                         [cljb-k cljb-v]]))]
        (print-one-error (validate-regular-rules conf) 'RootMap conf)))))

#_ (with-color
     (validate-project-config
   {:cljsbuild
    {:builds { :source-paths ["src" ]
              :fighweel true
              :compiler {}}

                                        }
    :figwheel {}
                            }
                           ))

#_(defn tester [conf]
    (with-schema (validate-regular-rules {:figwheel {}})
