           ["-t" "--package-system SYS"
            "May be 'degasolv' or 'apt'."
            :validate [#(or (= "degasolv" %) (= "apt" %))
-                      "Package system must be either 'degasolv' or 'apt'."]]]}})
+                      "Package system must be either 'degasolv' or 'apt'."]]
+          ["-V" "--version-comparison CMP"
+           "May be 'debian', 'maven', 'naive', 'python', 'rpm', 'rubygem', or 'semver'."
+           :validate [#(some #{%} (keys version-comparators))
+                      "Version comparison must be 'debian', 'maven', 'naive', 'python', 'rubygem', or 'semver'."]]
+          ]
+    }
+   }
+  )
 
 (defn command-list [commands]
   (->> ["Commands are:"

        :strategy (keyword resolve-strat)
        :conflict-strat (keyword conflict-strat)
        :search-strat (keyword search-strat)
        :compare (get-in package-systems [package-system :vercmp])
        :allow-alternatives alternatives)]
    (case
      (first result)

    :required-arguments {:id ["-i" "--id"]
                         :version ["-v" "--version"]
                         :location ["-l" "--location"]}
    :cli [
          ["-C" "--card-file FILE"
           (str "The name of the card file")

           :validate [#(not (empty? %))
                      "Out file must not be empty."]]
          ["-i" "--id ID"
           "ID (name) of the package"
           :validate [#(not (empty? %))
                      "ID must be a non-empty string."]
           :required true]
          ["-l" "--location LOCATION"
           "URL or filepath of the package"
