; another approach would be to have a gereral build config that doesn't have any 
; build tool specific information in it
; I think I like this better

;cljs-builds.edn
; don't include any build tool specific information in this config
{:dev {:source-paths ["src" "dev"]
       :compiler { :output-to "example.js" 
                   :optimizations :none
                   ... }}}
                   
; in the project.clj the above could be entered like this
:cljs-builds { :dev {...}
               :prod {...}}

; The above has some real advantages.  We can write one library to read validate and thoroughly document this
; general configuration format. And then leave the tool specific validation to the individual tools.

; We then place "build" specific information in the build tool configuration wherever that may be

; figwheel.edn or in project.clj depending on mode of tool
{ :server-port 4555
  :builds {:dev {:on-jsload 'example.core/reload}} }

;this is cleaner but maybe less clear when someone is trying to understand the config

; in a project.clj the above could be entered under the :figwheel key like so
:figwheel { :server-port 4555 
            :builds {} }