           (str "Zero-argument arity of def-entity, if present, must return a GameObject; instead getting a " (type ent)))))
     ent))
 
+;; ==================================================
+;; never mind, just use a fucking var
 
-(defn init-entity [{:keys [name init update] :as init-spec}]
-  (-> (or (find-entity name)
-          (and init (run-init init name)))
+(defn init-entity [{:keys [kw init update] :as init-spec}]
+  (-> (or (find-entity kw)
+          (and init (run-init init kw)))
       (as-> ent
             (if update (update ent) ent)
-            (register-name ent name))))
-
+            (register-name ent kw))))
 
 ;; ============================================================
 ;; def-entity
+
+;; TODO: support for docs
 
 (s/def ::tail-impl
   (s/cat

  :args ::def-entity-args 
  :ret any?)

(defmacro def-entity [& args]
  (as/qwik-conform [{:keys [name tails] :as spec} ::def-entity-args args]
    (let [qualified-name  (symbol
                            (c/name (ns-name *ns*))

(ns timsg.scene-var
  (:refer-clojure :exclude [def])
  (:use [arcadia.core])
  (:require [clojure.spec :as s]
            [clojure.core :as c]
