anchor.diff:  (= (val  em) {:a 1 :b 2})
   (= (keys em) [:a :b])
   (= (vals em) [1 2])
  -----
  -
  -### Keys, keychains, keylinks, and dogtags
  +(= (:a (into em {:a 3}) (:a em)))
  +----
  +etc.  More to come.
  +
  +===# Keys, keychains, keylinks, and dogtags
   
   A keylink is a namespaced keyword, e.g. `:Foo/Bar`.  A vector of
   keylinks is a keychain, which corresponds to a datastore Key, which
  
positive.code: (= (kind (entity-map [:Foo/Bar :X/d3] {:a 1})) :X)
  ----
  
  ### autogenned ids
  
  Use a partial ("improper") keychain to have the datastore autogen Id
  values.  All but the last links in the vector must be namespaced;
  
negative.code:  (entity-map* :pfx [:A/B :C/D]) ;; fetch all entities with keychain prefix (i.e. ancestor) [:A/B :C/D]
  ----
  
  === mutation
  
  [[app-listing]]
  [source,clojure]
  