                                                                           (.readAsText fr (.-data event))))
                                                           :on-error   (fn [event] (js/console.log ":on-error :" event))})
         dato-send!         (fn [event data]
-                             (js/console.log "dato-send! " (pr-str event) (pr-str data))
                              (.send ws (transit/write transit-writer [event data])))
         controls-ch        (async/chan)
         comms              {:controls controls-ch

                                                              (js/console.log "Listened TX: " tx-report)
                                                              (when (or (get-in tx-report [:tx-meta :tx/broadcast?])
                                                                        (get-in tx-report [:tx-meta :tx/persist?]))
                                                                (js/console.log "Prep that shit!")
                                                                (let [prepped (db/prep-broadcastable-tx-report tx-report)]
                                                                  (when @network-enabled?
                                                                    (js/console.log "Send that tx-shit!")
                                                                    (dato-send! :ss/tx-requested prepped)))))))
                                               (js/console.log "too: " (pr-str (type app-db)))
                                               (let [local-session-id (d/tempid :db.part/user)]
                                                 (d/transact! app-db (vals schema))
                                                 (d/transact! app-db [{:db/id                 (d/tempid :db.part/user)


;; TODO: Probably convert to cljs Record to reify this stuff + avoid the apply shortcut
(defn bootstrap! [dato & args]
  (apply (get-in dato [:api :bootstrap!]) args))

(defn db [dato]
