 (defmethod to-edn [EntityMap nil]
   [^EntityMap e]
   e)
-  ;; (let [k (.getKey e)
-  ;;       kch (get-keychain k)
-  ;;       props (clj/into {} (.getProperties e))
-  ;;       em (clj/into {} {:kind_ (.getKind k) :ident_ (identifier k)})]
-  ;;       ;; em (clj/into {} {:key kch})]
-  ;;   (clj/into em (for [[k v] props] [(keyword k) v]))))
 
 (defmethod to-edn [Entity nil]
   ;;[com.google.appengine.api.datastore.Entity nil]

      (throw (IllegalArgumentException. "arg must be key, keyword, or a vector of keywords")))))


;; (defmethod keychainer [clojure.lang.ArraySeq nil]
;;   ;; vector of keywords, string pairs, or both
;;   ([head & chain]
;;    (log/trace "seq nil" head chain)))

;; Key query (i.e. plain get)
(defmethod emaps?? 'Key
  [^clojure.lang.Keyword k]             ; e.g. :Foo/Bar

(declare get-val-ds get-val-clj)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(deftype EntityMap [entity]

  java.lang.Iterable
  (iterator [this]
