     "Returns nil if no tag is specified in the record definition, and no :key
      metadata exists. Otherwise returns a Key object. Specify optional entity
      group parent.")
-  (save! [this] [this parent]
-    "Writes the given entity to the data store. Specify optional entity group
-    parent."))
+  (save! [this]
+    "Writes the given entity to the data store."))
 
 
 (defn- unqualified-name [sym]

       (get-key-object [this# parent#]
         (get-key-object-helper this# ~key-property ~kind :parent parent#))
       (save! [this#]
         (save!-helper this# ~kind))
       (save! [this# parent#]
         (save!-helper this# ~kind :parent parent#)))))


;;; Note that the code relies on the API's implicit transaction tracking

     ;; key property exists
     (not (nil? key-property-value))
     (if parent
         (if (instance? Key parent)
             (KeyFactory/createKey parent kind key-property-value)
             (KeyFactory/createKey (get-key-object parent) kind key-property-value))
         (KeyFactory/createKey kind key-property-value))
     ;; something's wrong
     :else (throw (RuntimeException.
                   "entity has no valid :key metadata, and has no fields marked :key")))))


(defn save!-helper [entity-record kind]
  (let [key-object (get-key-object entity-record)
        entity (if key-object
                   (Entity. key-object)
                   (Entity. kind))]
