              {:person/name "Jon"
               :person/favorite-dessert [:dessert/name "ice cream"]})
 
+  (tx-entity2! (:db-conn ht-config/system) :dessert {:dessert/name "pie"})
+  (tx-entity2! (:db-conn ht-config/system)
+             :person
+             {:person/name "Becky"
+              :person/favorite-dessert [:dessert/name "pie"]})
+
 )

  [m prefix]
  (into {} (for [[k v] m] [(slam prefix k) v])))


(defn ensure-db-id
  "Ensure an entity has a db/id using tempid."

  (def valid-attrs {:person [:person/name :person/favorite-dessert]
                    :dessert [:dessert/name]})

  ;; Alternatively, partition maps and valid-attrs can be generated
  ;; from your Schematode definition. Caution! If you add anything to
  ;; your Schematode that doesn't belong there so you can keep using
  ;; these shortcuts, you should instead make these by hand!

  (def partitions2 (hatch/schematode->partitions schematode-def))

  (def valid-attrs2 (hatch/schematode->attrs schematode-def))

  ;; callers should def their own tx-entity! fns kinda like this
  (def tx-entity! (partial hatch/tx-clean-entity! partitions valid-attrs))
  (def tx-entity2! (partial hatch/tx-clean-entity! partitions2 valid-attrs2))

  ;; galleon will do this init stuff
  (schematode/init-schematode-constraints! (:db-conn ht-config/system))
