 (defmethod parse-adq :affects [m] (string-attr m))
 (defmethod parse-adq :damage [m] (string-attr m))
 (defmethod parse-adq :usage [m] (string-attr m))
+(defmethod parse-adq :reach [m] (string-attr m))
+(defmethod parse-adq :parry [m] (string-attr m))
+(defmethod parse-adq :block [m] (string-attr m))
 (defmethod parse-adq :attribute [m] (string-attr m))
+(defmethod parse-adq :college_name [m] (string-attr m))
+(defmethod parse-adq :accuracy [m] (string-attr m))
+(defmethod parse-adq :range [m] (string-attr m))
+(defmethod parse-adq :rate_of_fire [m] (string-attr m))
+(defmethod parse-adq :recoil [m] (string-attr m))
+(defmethod parse-adq :location [m] (string-attr m))
 
 (defmethod parse-adq :type [{:keys [content]}]
   {:type (set (map cs/trim (cs/split (first content) #",")))})
+
+(defmethod parse-adq :skill_prereq [{:keys [content]}]
+  {:skill_prereq (map parse-adq content)})
+
+(defmethod parse-adq :advantage_prereq [{:keys [content]}]
+  {:advantage_prereq (map parse-adq content)})
+
+(defmethod parse-adq :attribute_prereq [{:keys [content]}]
+  {:attribute_prereq (map parse-adq content)})
+
+(defmethod parse-adq :spell_bonus [{:keys [content]}]
+  {:spell_bonus (map parse-adq content)})
 
 (defmethod parse-adq :specialization [{:keys [tag content attrs]}]
   ;how do these attrs work?

            [clojure.edn :as edn]))

(def x (->> "clojure_club/gurps/basic_set.adq" io/resource slurp xml/parse-str))

#_(clojure.walk/prewalk
  (fn [{:keys [tag attrs content] :as m}]
    (cond
      (string? content) {tag content}
      (seq content) {tag m}
      :else m))
  x)

(defn numeric-attr [{:keys [tag content]}]
  {tag (some-> content first)})

    {:default (map parse-adq content)}
    (prn tag)))

;(parse-adq x)
