   it component local), then you have a problem when that component is composed into another component that
   is to be used when generating a server query. You don't want the UI-specific attributes to *go* to the server!
 
-  Untangled handles this for you. Any attributes in you component queries that are namespaced to `ui` are automatically
+  Untangled handles this for you. Any attributes in your component queries that are namespaced to `ui` are automatically
   (and recursively) stripped from queries before they are sent to the server. There is nothing for you to do except
   namespace these local-only attributes in the queries! (Additionally, there are local mutation
   helpers that can be used to update these without writing custom mutation code. See the section on Mutation)

  - However, if you do it, Untangled merges with the following rules:
      - If the query *asks* for an attribute, and the *response does not include it*, then it is always removed from the app state since the
      server has clearly indicated it is gone.
      - The the query *does not ask* for an attribute (which means the response cannot possibly contain it), then Untangled
      will avoid removing it, even if other attributes come back (e.g. it will be a merge leaving the property that was
      not asked for alone). This does indicate that your UI is possibly in a state inconsistent with the server, which
      is the reason for the \"avoid this case\" advice.

  (e.g. showing a dialog that has user-driven recovery choices).


  ### Global network activity marker

  Untangled will automatically maintain a global network activity marker at the top level of the app state under the
  keyword `:ui/loading-data`. This key will have a `true` value when there are network requests awaiting a response from
  the server, and will have a `false` value when there are no network requests in process.

  You can access this marker from any component that composes to root by including a link in your component's query:

  ```
  (defui Item ... )
  (def ui-item (om/factory Item {:keyfn :id}))

  (defui List
    static om/IQuery (query [this] [:id :title {:items (om/get-query Item)} [:ui/loading-data '_]]
    ...
    (render [this]
      (let [{:keys [title items ui/loading-data]} (om/props this)]
        (if (and loading-data (empty? items))
          (dom/div nil \"Loading...\")
          (dom/div nil
            (dom/h1 nil title)
            (map ui-item items))))
  ```
  Because the global loading marker is at the top level of the application state, do not use the keyword as a follow-on
  read to mutations because it may unnecessarily trigger a re-render of the entire application.
")
