{
  "format_version": "1.8.0",
  "render_controllers": {
    "controller.render.crl.villager_v2_base": {
      "arrays": {
        "textures": {
          "Array.skins": [
            "Texture.male",
            "Texture.male1",
            "Texture.male2",
            "Texture.female",
            "Texture.female1",
            "Texture.female2"
          ]
        }
      },
      "geometry": "Geometry.default",
      "materials": [{ "*": "Material.default" }],
      "textures": ["Array.skins[query.skin_id]"]
    },
    "controller.render.crl.villager_v2_face": {
      "arrays": {
        "textures": {
          "Array.skins": [
            "Texture.male_face",
            "Texture.male1_face",
            "Texture.male2_face",
            "Texture.female_face",
            "Texture.female1_face",
            "Texture.female2_face"
          ]
        }
      },
      "geometry": "Geometry.face",
      "materials": [{ "*": "Material.default" }],
      "textures": ["Array.skins[query.skin_id]"]
    },
    "controller.render.crl.villager_v2_masked": {
      "arrays": {
        "textures": {
          "Array.biomes": [
            "Texture.plains",
            "Texture.desert",
            "Texture.jungle",
            "Texture.savanna",
            "Texture.snow",
            "Texture.swamp",
            "Texture.taiga"
          ],
          "Array.professions": [
            "Texture.unskilled",
            "Texture.farmer",
            "Texture.fisherman",
            "Texture.shepherd",
            "Texture.fletcher",
            "Texture.librarian",
            "Texture.cartographer",
            "Texture.cleric",
            "Texture.armorer",
            "Texture.weapon_smith",
            "Texture.tool_smith",
            "Texture.butcher",
            "Texture.leatherworker",
            "Texture.stonemason",
            "Texture.nitwit"
          ]
        }
      },
      "geometry": "Geometry.default",
      "materials": [
        {
          "*": "(query.is_baby || variable.profession_index == 0) ? Material.default : Material.masked"
        }
      ],
      "textures": ["Array.biomes[query.mark_variant]", "Array.professions[variable.profession_index]"]
    },
    "controller.render.crl.villager_v2_level": {
      "arrays": {
        "textures": {
          "Array.levels": [
            "Texture.level_stone",
            "Texture.level_iron",
            "Texture.level_gold",
            "Texture.level_emerald",
            "Texture.level_diamond"
          ]
        }
      },
      "rebuild_animation_matrices": true,
      "geometry": "Geometry.default",
      // If we are not babies, unskilled, or nitwits we can have a job level
      "part_visibility": [
        {
          "*": "!query.is_baby && variable.profession_index != 0 && variable.profession_index != 14"
        }
      ],
      "materials": [{ "*": "Material.default" }],
      "textures": ["Array.levels[variable.level_index]"]
    },
    "controller.render.crl.villager_v2_hair": {
      "arrays": {
        "textures": {
          "Array.long_hair": [
            "Texture.hair_long_white",
            "Texture.hair_long_blonde",
            "Texture.hair_long_black",
            "Texture.hair_long_brown"
          ],
          "Array.short_hair": [
            "Texture.hair_blonde_bald",
            "Texture.hair_white",
            "Texture.hair_brown",
            "Texture.hair_brown2",
            "Texture.hair_black",
            "Texture.hair_black2",
            "Texture.hair_blonde",
            "Texture.hair_blonde2"
          ]
        }
      },
      "geometry": "Geometry.default",
      "materials": [{ "*": "Material.default" }],
      "textures": ["v.is_male ? Array.short_hair[v.random_hair] : Array.long_hair[v.random_hair]"],
      "part_visibility": [{ "helmet": "!(variable.profession_index <= 4 || query.mark_variant == 1)" }],
      "overlay_color": {
        "r": "0.0",
        "g": "0.0",
        "b": "0.0",
        "a": "(q.skin_id == 2 || q.skin_id == 5) ? 0.5 : 0.0"
      }
    }
  }
}
