    :path schema/Str
    :port schema/Int})
 
+(def ServerIDOption
+  {(schema/optional-key :server-id) schema/Keyword})
+
+(def ContextHandlerOptions
+  (assoc ServerIDOption (schema/optional-key :context-listeners) [ServletContextListener]))
+
+(def ServletHandlerOptions
+  (assoc ServerIDOption (schema/optional-key :servlet-init-params) {schema/Str schema/Str}))
+
 (def ProxyOptions
-  {(schema/optional-key :scheme) (schema/enum :orig :http :https)
-   (schema/optional-key :ssl-config) (schema/either
-                                       (schema/eq :use-server-config)
-                                       config/WebserverSslPemConfig)
-   (schema/optional-key :callback-fn) (schema/pred ifn?)
-   (schema/optional-key :request-buffer-size) schema/Int
-   (schema/optional-key :server-id) schema/Keyword})
-
-
-(def ContextHandlerOptions
-  {(schema/optional-key :server-id)         schema/Keyword
-   (schema/optional-key :context-listeners) [ServletContextListener]})
-
-(def RingAndWarHandlerOptions
-  {(schema/optional-key :server-id) schema/Keyword})
-
-(def ServletHandlerOptions
-  {(schema/optional-key :server-id)           schema/Keyword
-   (schema/optional-key :servlet-init-params) {schema/Str schema/Str}})
-
-(def ProxyRouteOptions
-  {(schema/optional-key :server-id) schema/Keyword
-   (schema/optional-key :options)   ProxyOptions})
+  (assoc ServerIDOption
+    (schema/optional-key :scheme) (schema/enum :orig :http :https)
+    (schema/optional-key :ssl-config) (schema/either
+                                        (schema/eq :use-server-config)
+                                        config/WebserverSslPemConfig)
+    (schema/optional-key :callback-fn) (schema/pred ifn?)
+    (schema/optional-key :request-buffer-size) schema/Int))
 
 (def ServerContext
   {:state     Atom

    (add-servlet-handler s servlet path servlet-init-params)))

(schema/defn ^:always-validate add-war-handler!
  [context war path options :- RingAndWarHandlerOptions]
  (let [defaults  {:server-id :default}
        opts      (merge defaults options)
        server-id (:server-id opts)

    (add-context-handler s base-path context-path context-listeners)))

(schema/defn ^:always-validate add-ring-handler!
  [context handler path options :- ServerIDOption]
  (let [defaults {:server-id :default}
        opts     (merge defaults options)
        server-id (:server-id opts)
