Cache configuration in UIConfig


I’ve a UIConfig file that looks like this:

  "id": "uiconfig",
  "applications": [
      "id": "..."
  "environments": [
      "id": "dev-env",
      "session": {
            "cache": "LocalStorage"
       "site": {},
       "connection": {
          "cache": false

When looking to UIConfig type definition with c3ShowType(UIConfig), I see that environments is a json but no further documentation on what it can contains!
My questions are:

  1. How I can find further documentation on the elements that I can use inside environments?
  2. Why cache configuration is in two places? i.e. session and connection and what is the difference between these two concepts?
  3. In this case cache is set to false for connection, does it mean that if I set cache to true in a DataSource this will have no effect, or what is the priority?