   "Asynchronously point a session to a url.
   Return nil or :webdriver-is-dead."
   (webdriver-go-to-url (resume-webdriver-from-id session-id) url))
+
+(def ModifyArg
+  "Modification to a session"
+  (s/either
+    (s/pair :change-tag "action" TagChange "tag change")
+    (s/pair :go-to-url  "action" s/Str     "url")
+    (s/pair :reserve    "action" s/Bool    "reserve")))
 
 (defn modify-session
   [session-id {:keys [browser-name

(defn is-ip? [s]
  (re-matches #"(?:\d{1,3}\.){3}\d{1,3}" s))

(def Session
  "A schema for a session spec."
  {:id                            s/Str
   (s/optional-key :tags)        [s/Str]
   (s/optional-key :reserved)     s/Bool

            nil)
        (car/return (view-model session-id))))
    nil))

(def CreateArg
  "Session-creation args"
  {(s/optional-key :browser-name) s/Str
   (s/optional-key :capabilities) Capabilities
   (s/optional-key :node-id) s/Str})

(defn create-session
  [{:keys [browser-name
