{
  "format_version": "1.8.0",
  "render_controllers": {
    "controller.render.cyn_hao.horse_body": {
      // part visisbility set in ALL render controllers
      // since without it the head patterns were breaking,
      // presumably because the multiple RCs telling certain bones
      // to hide / unhide were conflicting
      "part_visibility": [
        { "HeadSaddle": "query.is_saddled" },
        { "Saddle": "query.is_saddled" },
        { "SaddleMouthR" : "query.is_saddled && query.has_rider" },
        { "SaddleMouthL" : "query.is_saddled && query.has_rider" },
        { "SaddleMouthLine" : "query.is_saddled && query.has_rider" },
        { "SaddleMouthLineR" : "query.is_saddled && query.has_rider" },
        
        { "Bags": "query.is_chested" },
        { "Bag1": "query.is_chested" },
        { "Bag2": "query.is_chested" },

        { "capeedges": "query.property('cyn_hao:carpet_color') > 0" },
        { "FL_cape": "query.property('cyn_hao:carpet_color') > 0" },
        { "FR_cape": "query.property('cyn_hao:carpet_color') > 0" },
        { "cape_sideL": "query.property('cyn_hao:carpet_color') > 0" },
        { "cape_sideR": "query.property('cyn_hao:carpet_color') > 0" },
        { "cape_back": "query.property('cyn_hao:carpet_color') > 0" }
      ],

      "geometry": "Geometry.default",

      "materials": [
        { "*": "Material.multitexture_alpha_test" }
      ],

      "arrays": {
        "textures": {
          "Array.bases": [
            "Texture.base_0",
            "Texture.base_1",
            "Texture.base_2",
            "Texture.base_3",
            "Texture.base_4",
            "Texture.base_5",
            "Texture.base_6",
            "Texture.base_7",
            "Texture.base_8",
            "Texture.base_9",
            "Texture.base_10",
            "Texture.base_11",
            "Texture.base_12",
            "Texture.base_13",
            "Texture.base_14",
            "Texture.base_15",
            "Texture.base_16",
            "Texture.base_17",
            "Texture.base_18",
            "Texture.base_19",
            "Texture.base_20",
            "Texture.base_21"
          ],

          "Array.patterns": [
            "Texture.pattern_0",
            "Texture.pattern_1",
            "Texture.pattern_2",
            "Texture.pattern_3",
            "Texture.pattern_4",
            "Texture.pattern_5",
            "Texture.pattern_6",
            "Texture.pattern_7",
            "Texture.pattern_8",
            "Texture.pattern_9",
            "Texture.pattern_10",
            "Texture.pattern_11",
            "Texture.pattern_12",
            "Texture.pattern_13",
            "Texture.pattern_14",
            "Texture.pattern_15",
            "Texture.pattern_16"
          ],

          "Array.socks": [
            "Texture.sock_0",
            "Texture.sock_1",
            "Texture.sock_2",
            "Texture.sock_3",
            "Texture.sock_4",
            "Texture.sock_5",
            "Texture.sock_6",
            "Texture.sock_7",
            "Texture.sock_8",
            "Texture.sock_9",
            "Texture.sock_10",
            "Texture.sock_11",
            "Texture.sock_12",
            "Texture.sock_13"
          ]
        }
      },

      "textures": [
        "Array.bases[query.property('cyn_hao:base_id')]",
        "Array.patterns[query.property('cyn_hao:pattern_id')]",
        "Array.socks[query.property('cyn_hao:sock_id')]" 
      ]
    }
  }
}
