 (defn start-server [& args] ;; entry point, lein run will pick up and start from here
   (when @server
     (throw (ex-info "Server running!" {})))
-  (let [handler (reload/wrap-reload (site #'all-routes))]    
+  (let [handler (reload/wrap-reload (site #'all-routes))]
     (reset! server (server/run-server handler {:port 8000}))))
 
 (defn stop-server []

    :jar-exclusions
    :checkout-deps-shares

    ;; include our data state in here
    ;; TODO move our state out of the project map?
    ::run-state
    })

(defn get-project [project-name]
  (apply dissoc (get @projects project-name)
         non-data-keys))

(defn project-summary [project]

       (let [project (get-project* project-name)
             run-state @(project ::run-state)]
         {:body (pprint-str
                 (merge (project-summary project)
                        ;; TODO just include these in the summary?
                        {:map-url (str (url-for-project project-name)
                                                "/map")
                         :raw-map-url (str (url-for-project project-name)
                                           "/raw-map")
                         :repl {:state (if (run-state :repl)
                                         :started
                                         :stopped)
                                :url (str (url-for-project project-name)
                                          "/repl")}}))
          :status 200}))
  (GET "/api/projects/:project-name/map" [project-name]
       {:body (pprint-str (get-readable-project project-name))
        :status 200})
  (GET "/api/projects/:project-name/raw-map" [project-name]
       {:body (pprint-str (get-readable-raw-project project-name))
        :status 200})
  (POST "/api/projects" [root]
        (let [name (load-project! root)]
          {:status 201
