 ;;;   Component Lifecycle Implementation   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(defrecord PubSubComponent [dataflow])
+(defrecord PubSubComponent [
+  subscribers
+  ;; The 'dataflow' pubsub is intended for use in tracking low-level events
+  ;; in the system that relate to the manner in which data flows through the
+  ;; system.
+  dataflow
+  ;; The 'world' pubsub is intended for use by anything that needs to handle
+  ;; events that take place in the game world.
+  world])
 
 (defn start
   [this]

;;;   Constants, Data, & Utility Functions   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(def subscribers
  {tag/generic [:default]
   tag/subscribers-added [:default]})



(defn create-component
  ""
  ([]
   (create-component {}))
  ([subscribers]
   (map->PubSubComponent (merge default-subscribers subscribers))))
