                                (for [[method-name & impl] methods]
                                  {(keyword method-name) `(fn ~@impl)}))))
        (def ~entity
-         (~(symbol (format "map->%sEntity" (name entity))) ~(assoc entity-map ::entity true))))))
+         (~(symbol (format "map->%sEntity" (name entity))) (assoc ~unevaled-entity-map ::entity true))))))
 
 (defn metabase-entity?
   "Is ENTITY a valid metabase model entity?"

       (extend ~entity-symb
         IEntity ~(merge default-entity-method-implementations
                         {:internal-pre-insert  `(fn [~'_ obj#]
                                                   (-> (apply-type-fns obj# :in ~entity-map)
                                                       ~@(when (::timestamped entity-map)
                                                           [update-created-at-updated-at])))
                          :internal-pre-update  `(fn [~'_ obj#]
                                                   (-> (apply-type-fns obj# :in ~entity-map)
                                                       ~@(when (::timestamped entity-map)
                                                           [update-updated-at])))
                          :internal-post-select `(fn [~'_ obj#]


(defn- identity-second [_ obj] obj)
(def ^:private constantly-nil (constantly nil))

(def ^:const ^:private default-entity-method-implementations
  {:pre-insert         #'identity-second
