  (doc 'FigOpts "This is a cool option"
       {
        :hello ":hello is needed to say hello"
-       :good ":good is needed to say goodbye"})) 
+       :good ":good is needed to say goodbye"
+       :hey-there {:content "This is docs"
+                   :example "This is an example"}})) 
 
 ;; Direct Implementation
 ;; this is still squirrely


(defn parent-is-sequence? [{:keys [type-sig path]}]
  (and (integer? (first path))
       ((set (map last (*schema-rules* [:=> (second type-sig)]))) :SEQQ)))

(defmulti predicate-explain (fn [pred _] pred))

(defmethod predicate-explain :default [pred value]
  (if-let [typ (first (for [[t _ p] (*schema-rules* :=)
                            :when (= p pred)] t))]
    (name typ)
    pred))

;; tighten up unknown-key errors to include information about current parent config

(defn type-doc [parent-type]
  (when-let [[_ _ d] (first (schema-rules [:doc-type parent-type]))]
    d))

(declare key-doc)
