{
  "format_version": "1.26.0",
  "minecraft:entity": {
    "description": {
      "identifier": "minecraft:villager_v2",
      "is_experimental": false,
      "is_summonable": false,
      "is_spawnable": true,
      "spawn_category": "misc"
    },
    "components": {
      "minecraft:annotation.open_door": {},
      "minecraft:behavior.avoid_mob_type": {
        "entity_types": [
          {
            "filters": {
              "AND": [
                {
                  "OR": [
                    {
                      "test": "is_family",
                      "subject": 1,
                      "operator": 0,
                      "value": "zombie"
                    },
                    {
                      "test": "is_family",
                      "subject": 1,
                      "operator": 0,
                      "value": "zombie_villager"
                    },
                    {
                      "test": "is_family",
                      "subject": 1,
                      "operator": 0,
                      "value": "illager"
                    },
                    {
                      "test": "is_family",
                      "subject": 1,
                      "operator": 0,
                      "value": "vex"
                    },
                    {
                      "test": "is_family",
                      "subject": 1,
                      "operator": 0,
                      "value": "zoglin"
                    }
                  ]
                }
              ]
            },
            "max_dist": 8,
            "walk_speed_multiplier": 0.6,
            "sprint_speed_multiplier": 0.6
          }
        ],
        "priority": 4
      },
      "minecraft:behavior.float": {
        "priority": 0
      },
      "minecraft:behavior.hide": {
        "duration": 30,
        "poi_type": "bed",
        "priority": 0,
        "speed_multiplier": 0.8
      },
      "minecraft:behavior.look_at_player": {
        "look_time": {
          "min": 1,
          "max": 2
        },
        "priority": 9
      },
      "minecraft:behavior.look_at_trading_player": {
        "look_time": {
          "min": 1,
          "max": 2
        },
        "priority": 7
      },
      "minecraft:behavior.move_indoors": {
        "priority": 6,
        "speed_multiplier": 0.8,
        "timeout_cooldown": 8
      },
      "minecraft:behavior.move_towards_dwelling_restriction": {
        "speed_multiplier": 0.6,
        "priority": 11
      },
      "minecraft:behavior.panic": {
        "damage_sources": [
          "all"
        ],
        "priority": 1,
        "speed_multiplier": 0.6
      },
      "minecraft:behavior.pickup_items": {
        "can_pickup_to_hand_or_equipment": false,
        "goal_radius": 2,
        "priority": 4,
        "max_dist": 3,
        "speed_multiplier": 0.5
      },
      "minecraft:behavior.random_stroll": {
        "priority": 11,
        "speed_multiplier": 0.6
      },
      "minecraft:behavior.share_items": {
        "entity_types": [
          {
            "filters": {
              "subject": "other",
              "test": "is_family",
              "value": "villager"
            }
          }
        ],
        "goal_radius": 2,
        "priority": 10,
        "max_dist": 3,
        "speed_multiplier": 0.5
      },
      "minecraft:behavior.trade_with_player": {
        "filters": {
          "all_of": [
            {
              "all_of": [
                {
                  "test": "in_water",
                  "value": false
                }
              ]
            },
            {
              "any_of": [
                {
                  "test": "on_ground",
                  "value": true
                },
                {
                  "test": "is_sleeping",
                  "value": true
                }
              ]
            }
          ]
        },
        "priority": 2
      },
      "minecraft:breathable": {
        "suffocate_time": 0,
        "total_supply": 15
      },
      "minecraft:can_climb": {},
      "minecraft:collision_box": {
        "height": 1.9,
        "width": 0.6
      },
      "minecraft:conditional_bandwidth_optimization": {},
      "minecraft:damage_sensor": {
        "triggers": [
          {
            "deals_damage": "no",
            "on_damage": {
              "event": "become_witch",
              "filters": [
                {
                  "subject": "other",
                  "test": "is_family",
                  "value": "lightning"
                },
                {
                  "operator": "!=",
                  "test": "is_difficulty",
                  "value": "peaceful"
                }
              ]
            }
          },
          {
            "on_damage": {
              "event": "become_zombie",
              "filters": {
                "all_of": [
                  {
                    "test": "has_damage",
                    "value": "fatal"
                  }
                ],
                "any_of": [
                  {
                    "subject": "other",
                    "test": "is_family",
                    "value": "zombie"
                  },
                  {
                    "subject": "other",
                    "test": "is_family",
                    "value": "husk"
                  }
                ]
              }
            }
          }
        ]
      },
      "minecraft:dweller": {
        "can_find_poi": true,
        "dwelling_type": "village",
        "can_migrate": true,
        "dweller_role": "inhabitant",
        "first_founding_reward": 5,
        "update_interval_base": 60,
        "update_interval_variant": 40
      },
      "minecraft:follow_range": {
        "value": 128
      },
      "minecraft:health": {
        "max": 20,
        "value": 20
      },
      "minecraft:hide": {},
      "minecraft:hurt_on_condition": {
        "damage_conditions": [
          {
            "cause": "lava",
            "damage_per_tick": 4,
            "filters": {
              "operator": "==",
              "test": "in_lava",
              "subject": "self",
              "value": true
            }
          }
        ]
      },
      "minecraft:inventory": {
        "inventory_size": 8,
        "private": true
      },
      "minecraft:is_hidden_when_invisible": {},
      "minecraft:jump.static": {},
      "minecraft:mark_variant": {
        "value": 0 // Villagers have the Plains biome skin by default
      },
      "minecraft:movement": {
        "value": 0.5
      },
      "minecraft:movement.basic": {},
      "minecraft:nameable": {},
      "minecraft:navigation.walk": {
        "avoid_water": true,
        "can_open_doors": true,
        "using_door_annotation": true,
        "can_pass_doors": true,
        "can_path_over_water": true
      },
      "minecraft:persistent": {},
      "minecraft:physics": {},
      "minecraft:pushable": {
        "is_pushable": true,
        "is_pushable_by_piston": true
      },
      "minecraft:type_family": {
        "family": [
          "villager",
          "mob"
        ]
      }
    },
    "component_groups": {
      "adult": {
        "minecraft:behavior.make_love": {
          "priority": 5
        },
        "minecraft:behavior.receive_love": {
          "priority": 6
        },
        "minecraft:preferred_path": {
          "default_block_cost": 3,
          "jump_cost": 20,
          "preferred_path_blocks": [
            {
              "blocks": [
                "grass_path"
              ],
              "cost": 0
            },
            {
              "blocks": [
                "cobblestone",
                "stone",
                "stonebrick",
                "sandstone",
                "mossy_cobblestone",
                "stone_slab",
                "stone_slab2",
                "stone_slab3",
                "stone_slab4",
                "double_stone_slab",
                "double_stone_slab2",
                "double_stone_slab3",
                "double_stone_slab4",
                "wooden_slab",
                "double_wooden_slab",
                "planks",
                "brick_block",
                "nether_brick",
                "red_nether_brick",
                "end_bricks",
                "red_sandstone",
                "stained_glass",
                "glass",
                "glowstone",
                "prismarine",
                "emerald_block",
                "diamond_block",
                "lapis_block",
                "gold_block",
                "redstone_block",
                "purple_glazed_terracotta",
                "white_glazed_terracotta",
                "orange_glazed_terracotta",
                "magenta_glazed_terracotta",
                "light_blue_glazed_terracotta",
                "yellow_glazed_terracotta",
                "lime_glazed_terracotta",
                "pink_glazed_terracotta",
                "gray_glazed_terracotta",
                "silver_glazed_terracotta",
                "cyan_glazed_terracotta",
                "blue_glazed_terracotta",
                "brown_glazed_terracotta",
                "green_glazed_terracotta",
                "red_glazed_terracotta",
                "black_glazed_terracotta"
              ],
              "cost": 1
            },
            {
              "blocks": [
                "bed",
                "lectern",
                "composter",
                "grindstone",
                "blast_furnace",
                "smoker",
                "fletching_table",
                "cartography_table",
                "brewing_stand",
                "smithing_table",
                "cauldron",
                "barrel",
                "loom",
                "stonecutter"
              ],
              "cost": 50
            }
          ],
          "max_fall_blocks": 1
        }
      },
      "become_zombie": {
        "minecraft:transformation": {
          "into": "minecraft:zombie_villager_v2",
          "keep_level": true
        }
      },
      "cartographer": {
        "minecraft:behavior.trade_interest": {
          "carried_item_switch_time": 2,
          "cooldown": 2,
          "interest_time": 45,
          "within_radius": 6,
          "priority": 5,
          "remove_item_time": 1
        },
        "minecraft:dweller": {
          "can_find_poi": true,
          "dwelling_type": "village",
          "can_migrate": true,
          "dweller_role": "inhabitant",
          "preferred_profession": "cartographer",
          "first_founding_reward": 5,
          "update_interval_base": 60,
          "update_interval_variant": 40
        },
        "minecraft:economy_trade_table": {
          "cured_discount": [
            -100,
            -100
          ],
          "display_name": "entity.villager.cartographer",
          "max_cured_discount": [
            -500,
            -500
          ],
          "new_screen": true,
          "persist_trades": true,
          "table": "trading/economy_trades/cartographer_trades.json"
        },
        "minecraft:type_family": {
          "family": [
            "villager",
            "cartographer",
            "mob"
          ]
        },
        "minecraft:variant": {
          "value": 6
        }
      },
      "basic_schedule": {
        "minecraft:scheduler": {
          "max_delay_secs": 10,
          "scheduled_events": [
            {
              "event": "minecraft:schedule_wander_villager",
              "filters": {
                "all_of": [
                  {
                    "operator": ">=",
                    "test": "hourly_clock_time",
                    "value": 0
                  },
                  {
                    "operator": "<",
                    "test": "hourly_clock_time",
                    "value": 8000
                  }
                ]
              }
            },
            {
              "event": "minecraft:schedule_gather_villager",
              "filters": {
                "all_of": [
                  {
                    "operator": ">=",
                    "test": "hourly_clock_time",
                    "value": 8000
                  },
                  {
                    "operator": "<",
                    "test": "hourly_clock_time",
                    "value": 10000
                  }
                ]
              }
            },
            {
              "event": "minecraft:schedule_wander_villager",
              "filters": {
                "all_of": [
                  {
                    "operator": ">=",
                    "test": "hourly_clock_time",
                    "value": 10000
                  },
                  {
                    "operator": "<",
                    "test": "hourly_clock_time",
                    "value": 11000
                  }
                ]
              }
            },
            {
              "event": "minecraft:schedule_home_villager",
              "filters": {
                "all_of": [
                  {
                    "operator": ">=",
                    "test": "hourly_clock_time",
                    "value": 11000
                  },
                  {
                    "operator": "<",
                    "test": "hourly_clock_time",
                    "value": 12000
                  }
                ]
              }
            },
            {
              "event": "minecraft:schedule_bed_villager",
              "filters": {
                "all_of": [
                  {
                    "operator": ">=",
                    "test": "hourly_clock_time",
                    "value": 12000
                  },
                  {
                    "operator": "<",
                    "test": "hourly_clock_time",
                    "value": 24000
                  }
                ]
              }
            }
          ],
          "min_delay_secs": 0
        }
      },
      "armorer": {
        "minecraft:behavior.trade_interest": {
          "carried_item_switch_time": 2,
          "cooldown": 2,
          "interest_time": 45,
          "within_radius": 6,
          "priority": 5,
          "remove_item_time": 1
        },
        "minecraft:dweller": {
          "can_find_poi": true,
          "dwelling_type": "village",
          "can_migrate": true,
          "dweller_role": "inhabitant",
          "preferred_profession": "armorer",
          "first_founding_reward": 5,
          "update_interval_base": 60,
          "update_interval_variant": 40
        },
        "minecraft:economy_trade_table": {
          "cured_discount": [
            -100,
            -100
          ],
          "display_name": "entity.villager.armor",
          "max_cured_discount": [
            -500,
            -500
          ],
          "new_screen": true,
          "persist_trades": true,
          "table": "trading/economy_trades/armorer_trades.json"
        },
        "minecraft:type_family": {
          "family": [
            "villager",
            "blacksmith",
            "armorer",
            "mob"
          ]
        },
        "minecraft:variant": {
          "value": 8
        }
      },
      "bed_schedule_villager": {
        "minecraft:behavior.sleep": {
          "goal_radius": 1.5,
          "priority": 3,
          "sleep_collider_height": 0.3,
          "sleep_collider_width": 1,
          "sleep_y_offset": 0.6,
          "speed_multiplier": 0.6,
          "timeout_cooldown": 10
        }
      },
      "snow_villager": {
        "minecraft:mark_variant": {
          "value": 4
        }
      },
      "baby": {
        "minecraft:ageable": {
          "duration": 1200,
          "grow_up": {
            "event": "minecraft:ageable_grow_up",
            "target": "self"
          }
        },
        "minecraft:behavior.take_flower": {
          "filters": [
            {
              "all_of": [
                {
                  "test": "is_daytime",
                  "value": true
                }
              ]
            }
          ],
          "priority": 9
        },
        "minecraft:is_baby": {},
        "minecraft:preferred_path": {
          "default_block_cost": 1.5,
          "jump_cost": 5,
          "preferred_path_blocks": [
            {
              "blocks": [
                "grass_path"
              ],
              "cost": 0
            },
            {
              "blocks": [
                "cobblestone",
                "stone",
                "stonebrick",
                "sandstone",
                "mossy_cobblestone",
                "stone_slab",
                "stone_slab2",
                "stone_slab3",
                "stone_slab4",
                "double_stone_slab",
                "double_stone_slab2",
                "double_stone_slab3",
                "double_stone_slab4",
                "wooden_slab",
                "double_wooden_slab",
                "planks",
                "brick_block",
                "nether_brick",
                "red_nether_brick",
                "end_bricks",
                "red_sandstone",
                "stained_glass",
                "glass",
                "glowstone",
                "prismarine",
                "emerald_block",
                "diamond_block",
                "lapis_block",
                "gold_block",
                "redstone_block",
                "purple_glazed_terracotta",
                "white_glazed_terracotta",
                "orange_glazed_terracotta",
                "magenta_glazed_terracotta",
                "light_blue_glazed_terracotta",
                "yellow_glazed_terracotta",
                "lime_glazed_terracotta",
                "pink_glazed_terracotta",
                "gray_glazed_terracotta",
                "silver_glazed_terracotta",
                "cyan_glazed_terracotta",
                "blue_glazed_terracotta",
                "brown_glazed_terracotta",
                "green_glazed_terracotta",
                "red_glazed_terracotta",
                "black_glazed_terracotta"
              ],
              "cost": 1
            },
            {
              "blocks": [
                "bed",
                "lectern",
                "composter",
                "grindstone",
                "blast_furnace",
                "smoker",
                "fletching_table",
                "cartography_table",
                "brewing_stand",
                "smithing_table",
                "cauldron",
                "barrel",
                "loom",
                "stonecutter"
              ],
              "cost": 50
            }
          ],
          "max_fall_blocks": 1
        },
        "minecraft:scale": {
          "value": 0.5
        }
      },
      "behavior_non_peasant": {
        "minecraft:shareables": {
          "items": [
            {
              "item": "minecraft:bread",
              "stored_in_inventory": true,
              "surplus_amount": 6,
              "want_amount": 3
            },
            {
              "item": "minecraft:carrot",
              "stored_in_inventory": true,
              "surplus_amount": 24,
              "want_amount": 12
            },
            {
              "item": "minecraft:potato",
              "stored_in_inventory": true,
              "surplus_amount": 24,
              "want_amount": 12
            },
            {
              "item": "minecraft:beetroot",
              "stored_in_inventory": true,
              "surplus_amount": 24,
              "want_amount": 12
            }
          ]
        }
      },
      "become_witch": {
        "minecraft:transformation": {
          "delay": 0.5,
          "into": "minecraft:witch"
        }
      },
      "behavior_peasant": {
        "minecraft:shareables": {
          "items": [
            {
              "item": "minecraft:bread",
              "stored_in_inventory": true,
              "surplus_amount": 6,
              "want_amount": 3
            },
            {
              "item": "minecraft:carrot",
              "stored_in_inventory": true,
              "surplus_amount": 24,
              "want_amount": 60
            },
            {
              "item": "minecraft:potato",
              "stored_in_inventory": true,
              "surplus_amount": 24,
              "want_amount": 60
            },
            {
              "item": "minecraft:beetroot",
              "stored_in_inventory": true,
              "surplus_amount": 24,
              "want_amount": 60
            },
            {
              "item": "minecraft:wheat_seeds",
              "pickup_only": true,
              "stored_in_inventory": true,
              "surplus_amount": 64,
              "want_amount": 64
            },
            {
              "item": "minecraft:beetroot_seeds",
              "pickup_only": true,
              "stored_in_inventory": true,
              "surplus_amount": 64,
              "want_amount": 64
            },
            {
              "craft_into": "minecraft:bread",
              "want_amount": 45,
              "item": "minecraft:wheat",
              "stored_in_inventory": true,
              "surplus_amount": 18
            }
          ]
        }
      },
      "butcher": {
        "minecraft:behavior.trade_interest": {
          "carried_item_switch_time": 2,
          "cooldown": 2,
          "interest_time": 45,
          "within_radius": 6,
          "priority": 5,
          "remove_item_time": 1
        },
        "minecraft:dweller": {
          "can_find_poi": true,
          "dwelling_type": "village",
          "can_migrate": true,
          "dweller_role": "inhabitant",
          "preferred_profession": "butcher",
          "first_founding_reward": 5,
          "update_interval_base": 60,
          "update_interval_variant": 40
        },
        "minecraft:economy_trade_table": {
          "cured_discount": [
            -100,
            -100
          ],
          "display_name": "entity.villager.butcher",
          "max_cured_discount": [
            -500,
            -500
          ],
          "new_screen": true,
          "persist_trades": true,
          "table": "trading/economy_trades/butcher_trades.json"
        },
        "minecraft:type_family": {
          "family": [
            "villager",
            "artisan",
            "butcher",
            "mob"
          ]
        },
        "minecraft:variant": {
          "value": 11
        }
      },
      "weaponsmith": {
        "minecraft:behavior.trade_interest": {
          "carried_item_switch_time": 2,
          "cooldown": 2,
          "interest_time": 45,
          "within_radius": 6,
          "priority": 5,
          "remove_item_time": 1
        },
        "minecraft:dweller": {
          "can_find_poi": true,
          "dwelling_type": "village",
          "can_migrate": true,
          "dweller_role": "inhabitant",
          "preferred_profession": "weaponsmith",
          "first_founding_reward": 5,
          "update_interval_base": 60,
          "update_interval_variant": 40
        },
        "minecraft:economy_trade_table": {
          "cured_discount": [
            -100,
            -100
          ],
          "display_name": "entity.villager.weapon",
          "max_cured_discount": [
            -500,
            -500
          ],
          "new_screen": true,
          "persist_trades": true,
          "table": "trading/economy_trades/weapon_smith_trades.json"
        },
        "minecraft:type_family": {
          "family": [
            "villager",
            "blacksmith",
            "weaponsmith",
            "mob"
          ]
        },
        "minecraft:variant": {
          "value": 9
        }
      },
      "child_schedule": {
        "minecraft:scheduler": {
          "max_delay_secs": 10,
          "scheduled_events": [
            {
              "event": "minecraft:schedule_play_villager",
              "filters": {
                "all_of": [
                  {
                    "operator": ">=",
                    "test": "hourly_clock_time",
                    "value": 0
                  },
                  {
                    "operator": "<",
                    "test": "hourly_clock_time",
                    "value": 11000
                  }
                ]
              }
            },
            {
              "event": "minecraft:schedule_home_villager",
              "filters": {
                "all_of": [
                  {
                    "operator": ">=",
                    "test": "hourly_clock_time",
                    "value": 11000
                  },
                  {
                    "operator": "<",
                    "test": "hourly_clock_time",
                    "value": 12000
                  }
                ]
              }
            },
            {
              "event": "minecraft:schedule_bed_villager",
              "filters": {
                "all_of": [
                  {
                    "operator": ">=",
                    "test": "hourly_clock_time",
                    "value": 12000
                  },
                  {
                    "operator": "<",
                    "test": "hourly_clock_time",
                    "value": 24000
                  }
                ]
              }
            }
          ],
          "min_delay_secs": 0
        }
      },
      "minecraft:celebrate": {
        "minecraft:behavior.celebrate_survive": {
          "duration": 30,
          "fireworks_interval": {
            "range_max": 7,
            "range_min": 2
          },
          "on_celebration_end_event": {
            "event": "minecraft:stop_celebrating",
            "target": "self"
          },
          "priority": 5
        },
        "minecraft:behavior.move_outdoors": {
          "priority": 2,
          "speed_multiplier": 0.8,
          "timeout_cooldown": 8
        }
      },
      "cleric": {
        "minecraft:behavior.trade_interest": {
          "carried_item_switch_time": 2,
          "cooldown": 2,
          "interest_time": 45,
          "within_radius": 6,
          "priority": 5,
          "remove_item_time": 1
        },
        "minecraft:dweller": {
          "can_find_poi": true,
          "dwelling_type": "village",
          "can_migrate": true,
          "dweller_role": "inhabitant",
          "preferred_profession": "cleric",
          "first_founding_reward": 5,
          "update_interval_base": 60,
          "update_interval_variant": 40
        },
        "minecraft:economy_trade_table": {
          "cured_discount": [
            -100,
            -100
          ],
          "display_name": "entity.villager.cleric",
          "max_cured_discount": [
            -500,
            -500
          ],
          "new_screen": true,
          "persist_trades": true,
          "table": "trading/economy_trades/cleric_trades.json"
        },
        "minecraft:type_family": {
          "family": [
            "villager",
            "priest",
            "cleric",
            "mob"
          ]
        },
        "minecraft:variant": {
          "value": 7
        }
      },
      "desert_villager": {
        "minecraft:mark_variant": {
          "value": 1
        }
      },
      "farmer": {
        "minecraft:behavior.trade_interest": {
          "carried_item_switch_time": 2,
          "cooldown": 2,
          "interest_time": 45,
          "within_radius": 6,
          "priority": 5,
          "remove_item_time": 1
        },
        "minecraft:dweller": {
          "can_find_poi": true,
          "dwelling_type": "village",
          "can_migrate": true,
          "dweller_role": "inhabitant",
          "preferred_profession": "farmer",
          "first_founding_reward": 5,
          "update_interval_base": 60,
          "update_interval_variant": 40
        },
        "minecraft:economy_trade_table": {
          "cured_discount": [
            -100,
            -100
          ],
          "display_name": "entity.villager.farmer",
          "max_cured_discount": [
            -500,
            -500
          ],
          "new_screen": true,
          "persist_trades": true,
          "table": "trading/economy_trades/farmer_trades.json"
        },
        "minecraft:type_family": {
          "family": [
            "villager",
            "peasant",
            "farmer",
            "mob"
          ]
        },
        "minecraft:variant": {
          "value": 1
        }
      },
      "farmer_schedule": {
        "minecraft:scheduler": {
          "max_delay_secs": 10,
          "scheduled_events": [
            {
              "event": "minecraft:schedule_work_farmer",
              "filters": {
                "all_of": [
                  {
                    "operator": ">=",
                    "test": "hourly_clock_time",
                    "value": 0
                  },
                  {
                    "operator": "<",
                    "test": "hourly_clock_time",
                    "value": 8000
                  }
                ]
              }
            },
            {
              "event": "minecraft:schedule_gather_villager",
              "filters": {
                "all_of": [
                  {
                    "operator": ">=",
                    "test": "hourly_clock_time",
                    "value": 8000
                  },
                  {
                    "operator": "<",
                    "test": "hourly_clock_time",
                    "value": 10000
                  }
                ]
              }
            },
            {
              "event": "minecraft:schedule_work_farmer",
              "filters": {
                "all_of": [
                  {
                    "operator": ">=",
                    "test": "hourly_clock_time",
                    "value": 10000
                  },
                  {
                    "operator": "<",
                    "test": "hourly_clock_time",
                    "value": 11000
                  }
                ]
              }
            },
            {
              "event": "minecraft:schedule_home_villager",
              "filters": {
                "all_of": [
                  {
                    "operator": ">=",
                    "test": "hourly_clock_time",
                    "value": 11000
                  },
                  {
                    "operator": "<",
                    "test": "hourly_clock_time",
                    "value": 12000
                  }
                ]
              }
            },
            {
              "event": "minecraft:schedule_bed_villager",
              "filters": {
                "all_of": [
                  {
                    "operator": ">=",
                    "test": "hourly_clock_time",
                    "value": 12000
                  },
                  {
                    "operator": "<",
                    "test": "hourly_clock_time",
                    "value": 24000
                  }
                ]
              }
            }
          ],
          "min_delay_secs": 0
        }
      },
      "work_schedule_farmer": {
        "minecraft:behavior.fertilize_farm_block": {
          "priority": 8
        },
        "minecraft:behavior.harvest_farm_block": {
          "priority": 7
        },
        "minecraft:behavior.work_composter": {
          "active_time": 250,
          "priority": 9,
          "can_work_in_rain": false,
          "on_arrival": {
            "event": "minecraft:resupply_trades",
            "target": "self"
          },
          "goal_cooldown": 200,
          "speed_multiplier": 0.5,
          "work_in_rain_tolerance": 100
        },
        "minecraft:shareables": {
          "items": [
            {
              "item": "minecraft:bread",
              "stored_in_inventory": true,
              "surplus_amount": 6,
              "want_amount": 3
            },
            {
              "item": "minecraft:carrot",
              "stored_in_inventory": true,
              "surplus_amount": 24,
              "want_amount": 60
            },
            {
              "item": "minecraft:potato",
              "stored_in_inventory": true,
              "surplus_amount": 24,
              "want_amount": 60
            },
            {
              "item": "minecraft:beetroot",
              "stored_in_inventory": true,
              "surplus_amount": 24,
              "want_amount": 60
            },
            {
              "item": "minecraft:wheat_seeds",
              "pickup_only": true,
              "stored_in_inventory": true,
              "surplus_amount": 64,
              "want_amount": 64
            },
            {
              "item": "minecraft:beetroot_seeds",
              "pickup_only": true,
              "stored_in_inventory": true,
              "surplus_amount": 64,
              "want_amount": 64
            },
            {
              "item": "minecraft:bone_meal",
              "stored_in_inventory": true,
              "surplus_amount": 64,
              "want_amount": 64
            },
            {
              "craft_into": "minecraft:bread",
              "want_amount": 45,
              "item": "minecraft:wheat",
              "stored_in_inventory": true,
              "surplus_amount": 18
            }
          ]
        }
      },
      "fisher_schedule": {
        "minecraft:scheduler": {
          "max_delay_secs": 10,
          "scheduled_events": [
            {
              "event": "minecraft:schedule_work_fisher",
              "filters": {
                "all_of": [
                  {
                    "operator": ">=",
                    "test": "hourly_clock_time",
                    "value": 0
                  },
                  {
                    "operator": "<",
                    "test": "hourly_clock_time",
                    "value": 8000
                  }
                ]
              }
            },
            {
              "event": "minecraft:schedule_gather_villager",
              "filters": {
                "all_of": [
                  {
                    "operator": ">=",
                    "test": "hourly_clock_time",
                    "value": 8000
                  },
                  {
                    "operator": "<",
                    "test": "hourly_clock_time",
                    "value": 10000
                  }
                ]
              }
            },
            {
              "event": "minecraft:schedule_work_fisher",
              "filters": {
                "all_of": [
                  {
                    "operator": ">=",
                    "test": "hourly_clock_time",
                    "value": 10000
                  },
                  {
                    "operator": "<",
                    "test": "hourly_clock_time",
                    "value": 11000
                  }
                ]
              }
            },
            {
              "event": "minecraft:schedule_home_villager",
              "filters": {
                "all_of": [
                  {
                    "operator": ">=",
                    "test": "hourly_clock_time",
                    "value": 11000
                  },
                  {
                    "operator": "<",
                    "test": "hourly_clock_time",
                    "value": 12000
                  }
                ]
              }
            },
            {
              "event": "minecraft:schedule_bed_villager",
              "filters": {
                "all_of": [
                  {
                    "operator": ">=",
                    "test": "hourly_clock_time",
                    "value": 12000
                  },
                  {
                    "operator": "<",
                    "test": "hourly_clock_time",
                    "value": 24000
                  }
                ]
              }
            }
          ],
          "min_delay_secs": 0
        }
      },
      "work_schedule": {
        "minecraft:scheduler": {
          "max_delay_secs": 10,
          "scheduled_events": [
            {
              "event": "minecraft:schedule_work_pro_villager",
              "filters": {
                "all_of": [
                  {
                    "operator": ">=",
                    "test": "hourly_clock_time",
                    "value": 0
                  },
                  {
                    "operator": "<",
                    "test": "hourly_clock_time",
                    "value": 8000
                  }
                ]
              }
            },
            {
              "event": "minecraft:schedule_gather_villager",
              "filters": {
                "all_of": [
                  {
                    "operator": ">=",
                    "test": "hourly_clock_time",
                    "value": 8000
                  },
                  {
                    "operator": "<",
                    "test": "hourly_clock_time",
                    "value": 10000
                  }
                ]
              }
            },
            {
              "event": "minecraft:schedule_work_pro_villager",
              "filters": {
                "all_of": [
                  {
                    "operator": ">=",
                    "test": "hourly_clock_time",
                    "value": 10000
                  },
                  {
                    "operator": "<",
                    "test": "hourly_clock_time",
                    "value": 11000
                  }
                ]
              }
            },
            {
              "event": "minecraft:schedule_home_villager",
              "filters": {
                "all_of": [
                  {
                    "operator": ">=",
                    "test": "hourly_clock_time",
                    "value": 11000
                  },
                  {
                    "operator": "<",
                    "test": "hourly_clock_time",
                    "value": 12000
                  }
                ]
              }
            },
            {
              "event": "minecraft:schedule_bed_villager",
              "filters": {
                "all_of": [
                  {
                    "operator": ">=",
                    "test": "hourly_clock_time",
                    "value": 12000
                  },
                  {
                    "operator": "<",
                    "test": "hourly_clock_time",
                    "value": 24000
                  }
                ]
              }
            }
          ],
          "min_delay_secs": 0
        }
      },
      "fisherman": {
        "minecraft:behavior.trade_interest": {
          "carried_item_switch_time": 2,
          "cooldown": 2,
          "interest_time": 45,
          "within_radius": 6,
          "priority": 5,
          "remove_item_time": 1
        },
        "minecraft:dweller": {
          "can_find_poi": true,
          "dwelling_type": "village",
          "can_migrate": true,
          "dweller_role": "inhabitant",
          "preferred_profession": "fisherman",
          "first_founding_reward": 5,
          "update_interval_base": 60,
          "update_interval_variant": 40
        },
        "minecraft:economy_trade_table": {
          "cured_discount": [
            -100,
            -100
          ],
          "display_name": "entity.villager.fisherman",
          "max_cured_discount": [
            -500,
            -500
          ],
          "new_screen": true,
          "persist_trades": true,
          "table": "trading/economy_trades/fisherman_trades.json"
        },
        "minecraft:type_family": {
          "family": [
            "villager",
            "peasant",
            "fisherman",
            "mob"
          ]
        },
        "minecraft:variant": {
          "value": 2
        }
      },
      "villager_skin_2": {
        "minecraft:skin_id": {
          "value": 2
        }
      },
      "fletcher": {
        "minecraft:behavior.trade_interest": {
          "carried_item_switch_time": 2,
          "cooldown": 2,
          "interest_time": 45,
          "within_radius": 6,
          "priority": 5,
          "remove_item_time": 1
        },
        "minecraft:dweller": {
          "can_find_poi": true,
          "dwelling_type": "village",
          "can_migrate": true,
          "dweller_role": "inhabitant",
          "preferred_profession": "fletcher",
          "first_founding_reward": 5,
          "update_interval_base": 60,
          "update_interval_variant": 40
        },
        "minecraft:economy_trade_table": {
          "cured_discount": [
            -100,
            -100
          ],
          "display_name": "entity.villager.fletcher",
          "max_cured_discount": [
            -500,
            -500
          ],
          "new_screen": true,
          "persist_trades": true,
          "table": "trading/economy_trades/fletcher_trades.json"
        },
        "minecraft:type_family": {
          "family": [
            "villager",
            "peasant",
            "fletcher",
            "mob"
          ]
        },
        "minecraft:variant": {
          "value": 4
        }
      },
      "gather_schedule_villager": {
        "minecraft:behavior.mingle": {
          "cooldown_time": 10,
          "duration": 30,
          "mingle_distance": 2,
          "mingle_partner_type": "minecraft:villager_v2",
          "priority": 7,
          "speed_multiplier": 0.5
        }
      },
      "home_schedule_villager": {},
      //every goal that has to do with villagers working should go here (work goals, secondary goals)
      //so they can be successfuly removed on schedule change
      "job_specific_goals": {
        "minecraft:behavior.explore_outskirts": {},
        "minecraft:behavior.harvest_farm_block": {},
        "minecraft:behavior.inspect_bookshelf": {},
        "minecraft:behavior.mingle": {},
        "minecraft:behavior.sleep": {},
        "minecraft:behavior.work": {},
        "minecraft:behavior.work_composter": {}
      },
      "jobless_schedule": {
        "minecraft:scheduler": {
          "max_delay_secs": 10,
          "scheduled_events": [
            {
              "event": "minecraft:schedule_wander_villager",
              "filters": {
                "all_of": [
                  {
                    "operator": ">=",
                    "test": "hourly_clock_time",
                    "value": 2000
                  },
                  {
                    "operator": "<",
                    "test": "hourly_clock_time",
                    "value": 13000
                  }
                ]
              }
            },
            {
              "event": "minecraft:schedule_home_villager",
              "filters": {
                "all_of": [
                  {
                    "operator": ">=",
                    "test": "hourly_clock_time",
                    "value": 13000
                  },
                  {
                    "operator": "<",
                    "test": "hourly_clock_time",
                    "value": 14000
                  }
                ]
              }
            },
            {
              "event": "minecraft:schedule_bed_villager",
              "filters": {
                "all_of": [
                  {
                    "operator": ">=",
                    "test": "hourly_clock_time",
                    "value": 14000
                  },
                  {
                    "operator": "<",
                    "test": "hourly_clock_time",
                    "value": 24000
                  }
                ]
              }
            },
            {
              "event": "minecraft:schedule_bed_villager",
              "filters": {
                "all_of": [
                  {
                    "operator": ">=",
                    "test": "hourly_clock_time",
                    "value": 0
                  },
                  {
                    "operator": "<",
                    "test": "hourly_clock_time",
                    "value": 2000
                  }
                ]
              }
            }
          ],
          "min_delay_secs": 0
        }
      },
      "work_schedule_librarian": {
        "minecraft:behavior.inspect_bookshelf": {
          "goal_radius": 0.8,
          "priority": 8,
          "search_count": 0,
          "search_height": 3,
          "search_range": 4,
          "speed_multiplier": 0.6
        },
        "minecraft:behavior.work": {
          "priority": 7,
          "active_time": 250,
          "on_arrival": {
            "event": "minecraft:resupply_trades",
            "target": "self"
          },
          "can_work_in_rain": false,
          "speed_multiplier": 0.5,
          "goal_cooldown": 200,
          "sound_delay_max": 200,
          "work_in_rain_tolerance": 100,
          "sound_delay_min": 100
        }
      },
      "jungle_villager": {
        "minecraft:mark_variant": {
          "value": 2
        }
      },
      "librarian": {
        "minecraft:behavior.trade_interest": {
          "carried_item_switch_time": 2,
          "cooldown": 2,
          "interest_time": 45,
          "within_radius": 6,
          "priority": 5,
          "remove_item_time": 1
        },
        "minecraft:dweller": {
          "can_find_poi": true,
          "dwelling_type": "village",
          "can_migrate": true,
          "dweller_role": "inhabitant",
          "preferred_profession": "librarian",
          "first_founding_reward": 5,
          "update_interval_base": 60,
          "update_interval_variant": 40
        },
        "minecraft:economy_trade_table": {
          "cured_discount": [
            -100,
            -100
          ],
          "display_name": "entity.villager.librarian",
          "max_cured_discount": [
            -500,
            -500
          ],
          "new_screen": true,
          "persist_trades": true,
          "table": "trading/economy_trades/librarian_trades.json"
        },
        "minecraft:type_family": {
          "family": [
            "villager",
            "librarian",
            "mob"
          ]
        },
        "minecraft:variant": {
          "value": 5
        }
      },
      "leatherworker": {
        "minecraft:behavior.trade_interest": {
          "carried_item_switch_time": 2,
          "cooldown": 2,
          "interest_time": 45,
          "within_radius": 6,
          "priority": 5,
          "remove_item_time": 1
        },
        "minecraft:dweller": {
          "can_find_poi": true,
          "dwelling_type": "village",
          "can_migrate": true,
          "dweller_role": "inhabitant",
          "preferred_profession": "leatherworker",
          "first_founding_reward": 5,
          "update_interval_base": 60,
          "update_interval_variant": 40
        },
        "minecraft:economy_trade_table": {
          "cured_discount": [
            -100,
            -100
          ],
          "display_name": "entity.villager.leather",
          "max_cured_discount": [
            -500,
            -500
          ],
          "new_screen": true,
          "persist_trades": true,
          "table": "trading/economy_trades/leather_worker_trades.json"
        },
        "minecraft:type_family": {
          "family": [
            "villager",
            "artisan",
            "leatherworker",
            "mob"
          ]
        },
        "minecraft:variant": {
          "value": 12
        }
      },
      "librarian_schedule": {
        "minecraft:scheduler": {
          "max_delay_secs": 10,
          "scheduled_events": [
            {
              "event": "minecraft:schedule_work_librarian",
              "filters": {
                "all_of": [
                  {
                    "operator": ">=",
                    "test": "hourly_clock_time",
                    "value": 0
                  },
                  {
                    "operator": "<",
                    "test": "hourly_clock_time",
                    "value": 8000
                  }
                ]
              }
            },
            {
              "event": "minecraft:schedule_gather_villager",
              "filters": {
                "all_of": [
                  {
                    "operator": ">=",
                    "test": "hourly_clock_time",
                    "value": 8000
                  },
                  {
                    "operator": "<",
                    "test": "hourly_clock_time",
                    "value": 10000
                  }
                ]
              }
            },
            {
              "event": "minecraft:schedule_work_librarian",
              "filters": {
                "all_of": [
                  {
                    "operator": ">=",
                    "test": "hourly_clock_time",
                    "value": 10000
                  },
                  {
                    "operator": "<",
                    "test": "hourly_clock_time",
                    "value": 11000
                  }
                ]
              }
            },
            {
              "event": "minecraft:schedule_home_villager",
              "filters": {
                "all_of": [
                  {
                    "operator": ">=",
                    "test": "hourly_clock_time",
                    "value": 11000
                  },
                  {
                    "operator": "<",
                    "test": "hourly_clock_time",
                    "value": 12000
                  }
                ]
              }
            },
            {
              "event": "minecraft:schedule_bed_villager",
              "filters": {
                "all_of": [
                  {
                    "operator": ">=",
                    "test": "hourly_clock_time",
                    "value": 12000
                  },
                  {
                    "operator": "<",
                    "test": "hourly_clock_time",
                    "value": 24000
                  }
                ]
              }
            }
          ],
          "min_delay_secs": 0
        }
      },
      "mason": {
        "minecraft:behavior.trade_interest": {
          "carried_item_switch_time": 2,
          "cooldown": 2,
          "interest_time": 45,
          "within_radius": 6,
          "priority": 5,
          "remove_item_time": 1
        },
        "minecraft:dweller": {
          "can_find_poi": true,
          "dwelling_type": "village",
          "can_migrate": true,
          "dweller_role": "inhabitant",
          "preferred_profession": "mason",
          "first_founding_reward": 5,
          "update_interval_base": 60,
          "update_interval_variant": 40
        },
        "minecraft:economy_trade_table": {
          "cured_discount": [
            -100,
            -100
          ],
          "display_name": "entity.villager.mason",
          "max_cured_discount": [
            -500,
            -500
          ],
          "new_screen": true,
          "persist_trades": true,
          "table": "trading/economy_trades/stone_mason_trades.json"
        },
        "minecraft:type_family": {
          "family": [
            "villager",
            "artisan",
            "stone_mason",
            "mob"
          ]
        },
        "minecraft:variant": {
          "value": 13
        }
      },
      "nitwit": {
        "minecraft:type_family": {
          "family": [
            "villager",
            "peasant",
            "nitwit",
            "mob"
          ]
        },
        "minecraft:variant": {
          "value": 14
        }
      },
      "work_schedule_fisher": {
        "minecraft:behavior.work": {
          "priority": 7,
          "active_time": 250,
          "on_arrival": {
            "event": "minecraft:resupply_trades",
            "target": "self"
          },
          "can_work_in_rain": false,
          "speed_multiplier": 0.5,
          "goal_cooldown": 200,
          "sound_delay_max": 200,
          "work_in_rain_tolerance": 100,
          "sound_delay_min": 100
        }
      },
      "play_schedule_villager": {
        "minecraft:behavior.play": {
          "priority": 8,
          "speed_multiplier": 0.32
        }
      },
      "savanna_villager": {
        "minecraft:mark_variant": {
          "value": 3
        }
      },
      "shepherd": {
        "minecraft:behavior.trade_interest": {
          "carried_item_switch_time": 2,
          "cooldown": 2,
          "interest_time": 45,
          "within_radius": 6,
          "priority": 5,
          "remove_item_time": 1
        },
        "minecraft:dweller": {
          "can_find_poi": true,
          "dwelling_type": "village",
          "can_migrate": true,
          "dweller_role": "inhabitant",
          "preferred_profession": "shepherd",
          "first_founding_reward": 5,
          "update_interval_base": 60,
          "update_interval_variant": 40
        },
        "minecraft:economy_trade_table": {
          "cured_discount": [
            -100,
            -100
          ],
          "display_name": "entity.villager.shepherd",
          "max_cured_discount": [
            -500,
            -500
          ],
          "new_screen": true,
          "persist_trades": true,
          "table": "trading/economy_trades/shepherd_trades.json"
        },
        "minecraft:type_family": {
          "family": [
            "villager",
            "peasant",
            "shepherd",
            "mob"
          ]
        },
        "minecraft:variant": {
          "value": 3
        }
      },
      "unskilled": {
        "minecraft:type_family": {
          "family": [
            "villager",
            "peasant",
            "unskilled",
            "mob"
          ]
        },
        "minecraft:variant": {
          "value": 0
        }
      },
      "swamp_villager": {
        "minecraft:mark_variant": {
          "value": 5
        }
      },
      "taiga_villager": {
        "minecraft:mark_variant": {
          "value": 6
        }
      },
      "toolsmith": {
        "minecraft:behavior.trade_interest": {
          "carried_item_switch_time": 2,
          "cooldown": 2,
          "interest_time": 45,
          "within_radius": 6,
          "priority": 5,
          "remove_item_time": 1
        },
        "minecraft:dweller": {
          "can_find_poi": true,
          "dwelling_type": "village",
          "can_migrate": true,
          "dweller_role": "inhabitant",
          "preferred_profession": "toolsmith",
          "first_founding_reward": 5,
          "update_interval_base": 60,
          "update_interval_variant": 40
        },
        "minecraft:economy_trade_table": {
          "cured_discount": [
            -100,
            -100
          ],
          "display_name": "entity.villager.tool",
          "max_cured_discount": [
            -500,
            -500
          ],
          "new_screen": true,
          "persist_trades": true,
          "table": "trading/economy_trades/tool_smith_trades.json"
        },
        "minecraft:type_family": {
          "family": [
            "villager",
            "blacksmith",
            "toolsmith",
            "mob"
          ]
        },
        "minecraft:variant": {
          "value": 10
        }
      },
      // A grouping of components that should never be added
      // however, they are here to flush out any artifact component groups
      // that might linger between villager job switches
      "trade_components": {
        "minecraft:behavior.trade_interest": {},
        "minecraft:economy_trade_table": {}
      },
      "trade_resupply_component_group": {
        "minecraft:trade_resupply": {}
      },
      "villager_skin_0": {
        "minecraft:skin_id": {
          "value": 0
        }
      },
      "villager_skin_1": {
        "minecraft:skin_id": {
          "value": 1
        }
      },
      "villager_skin_3": {
        "minecraft:skin_id": {
          "value": 3
        }
      },
      "work_schedule_villager": {
        "minecraft:behavior.work": {
          "priority": 7,
          "active_time": 250,
          "on_arrival": {
            "event": "minecraft:resupply_trades",
            "target": "self"
          },
          "can_work_in_rain": false,
          "speed_multiplier": 0.5,
          "goal_cooldown": 200,
          "sound_delay_max": 200,
          "work_in_rain_tolerance": 100,
          "sound_delay_min": 100
        }
      },
      "villager_skin_4": {
        "minecraft:skin_id": {
          "value": 4
        }
      },
      "villager_skin_5": {
        "minecraft:skin_id": {
          "value": 5
        }
      },
      "wander_schedule_villager": {
        "minecraft:behavior.explore_outskirts": {
          "max_wait_time": 10,
          "speed_multiplier": 0.6,
          "explore_dist": 6,
          "min_dist_from_target": 2.5,
          "priority": 9
        }
      }
    },
    "events": {
      "become_witch": {
        "add": {
          "component_groups": [
            "become_witch"
          ]
        }
      },
      "become_zombie": {
        "sequence": [
          {
            "randomize": [
              {
                "add": {
                  "component_groups": [
                    "become_zombie"
                  ]
                },
                "weight": 50
              },
              {
                "weight": 50
              }
            ],
            "filters": {
              "test": "is_difficulty",
              "value": "normal"
            }
          },
          {
            "filters": {
              "test": "is_difficulty",
              "value": "hard"
            },
            "add": {
              "component_groups": [
                "become_zombie"
              ]
            }
          }
        ]
      },
      "minecraft:stop_celebrating": {
        "remove": {
          "component_groups": [
            "minecraft:celebrate"
          ]
        }
      },
      "minecraft:schedule_work_fisher": {
        "add": {
          "component_groups": [
            "work_schedule_fisher"
          ]
        },
        "remove": {
          "component_groups": [
            "home_schedule_villager",
            "gather_schedule_villager",
            "wander_schedule_villager",
            "bed_schedule_villager",
            "job_specific_goals",
            "play_schedule_villager"
          ]
        }
      },
      "minecraft:become_farmer": {
        "add": {
          "component_groups": [
            "farmer",
            "adult",
            "behavior_peasant",
            "farmer_schedule"
          ]
        },
        "remove": {
          "component_groups": [
            "baby",
            "child_schedule",
            "job_specific_goals",
            "trade_components"
          ]
        }
      },
      "minecraft:start_celebrating": { // Event must be called exactly this for village to fire it when a raid is won
        "add": {
          "component_groups": [
            "minecraft:celebrate"
          ]
        }
      },
      "minecraft:become_butcher": {
        "add": {
          "component_groups": [
            "butcher",
            "adult",
            "behavior_non_peasant",
            "work_schedule"
          ]
        },
        "remove": {
          "component_groups": [
            "baby",
            "child_schedule",
            "job_specific_goals",
            "trade_components"
          ]
        }
      },
      "minecraft:ageable_grow_up": {
        "randomize": [
          {
            "add": {
              "component_groups": [
                "adult",
                "nitwit",
                "behavior_peasant",
                "jobless_schedule"
              ]
            },
            "remove": {
              "component_groups": [
                "baby",
                "child_schedule"
              ]
            },
            "weight": 10
          },
          {
            "add": {
              "component_groups": [
                "adult",
                "unskilled",
                "behavior_peasant",
                "basic_schedule"
              ]
            },
            "remove": {
              "component_groups": [
                "baby",
                "child_schedule"
              ]
            },
            "weight": 90
          }
        ]
      },
      "minecraft:schedule_work_pro_villager": {
        "add": {
          "component_groups": [
            "work_schedule_villager"
          ]
        },
        "remove": {
          "component_groups": [
            "home_schedule_villager",
            "gather_schedule_villager",
            "wander_schedule_villager",
            "bed_schedule_villager",
            "play_schedule_villager"
          ]
        }
      },
      "minecraft:become_cleric": {
        "add": {
          "component_groups": [
            "cleric",
            "adult",
            "behavior_non_peasant",
            "work_schedule"
          ]
        },
        "remove": {
          "component_groups": [
            "baby",
            "child_schedule",
            "job_specific_goals",
            "trade_components"
          ]
        }
      },
      "minecraft:become_armorer": {
        "add": {
          "component_groups": [
            "armorer",
            "adult",
            "behavior_non_peasant",
            "work_schedule"
          ]
        },
        "remove": {
          "component_groups": [
            "baby",
            "child_schedule",
            "job_specific_goals",
            "trade_components"
          ]
        }
      },
      "minecraft:become_cartographer": {
        "add": {
          "component_groups": [
            "cartographer",
            "adult",
            "behavior_non_peasant",
            "work_schedule"
          ]
        },
        "remove": {
          "component_groups": [
            "baby",
            "child_schedule",
            "job_specific_goals",
            "trade_components"
          ]
        }
      },
      "minecraft:become_fletcher": {
        "add": {
          "component_groups": [
            "fletcher",
            "adult",
            "behavior_non_peasant",
            "work_schedule"
          ]
        },
        "remove": {
          "component_groups": [
            "baby",
            "child_schedule",
            "job_specific_goals",
            "trade_components"
          ]
        }
      },
      "minecraft:become_fisherman": {
        "add": {
          "component_groups": [
            "fisherman",
            "adult",
            "behavior_non_peasant",
            "fisher_schedule"
          ]
        },
        "remove": {
          "component_groups": [
            "baby",
            "child_schedule",
            "job_specific_goals",
            "trade_components"
          ]
        }
      },
      "minecraft:become_leatherworker": {
        "add": {
          "component_groups": [
            "leatherworker",
            "adult",
            "behavior_non_peasant",
            "work_schedule"
          ]
        },
        "remove": {
          "component_groups": [
            "baby",
            "child_schedule",
            "job_specific_goals",
            "trade_components"
          ]
        }
      },
      "minecraft:become_librarian": {
        "add": {
          "component_groups": [
            "librarian",
            "adult",
            "behavior_non_peasant",
            "librarian_schedule"
          ]
        },
        "remove": {
          "component_groups": [
            "baby",
            "child_schedule",
            "job_specific_goals",
            "trade_components"
          ]
        }
      },
      "minecraft:become_mason": {
        "add": {
          "component_groups": [
            "mason",
            "adult",
            "behavior_non_peasant",
            "work_schedule"
          ]
        },
        "remove": {
          "component_groups": [
            "baby",
            "child_schedule",
            "job_specific_goals",
            "trade_components"
          ]
        }
      },
      "minecraft:entity_transformed": {
        "sequence": [
          // Transform to baby villager
          {
            "filters": {
              "test": "has_component",
              "operator": "==",
              "subject": "other",
              "value": "minecraft:is_baby"
            },
            "add": {
              "component_groups": [
                "baby",
                "child_schedule"
              ]
            }
          },
          {
            // Transform to adult villager
            "filters": {
              "test": "has_component",
              "operator": "!=",
              "subject": "other",
              "value": "minecraft:is_baby"
            },
            "sequence": [
              // Transform to adult villager
              {
                "add": {
                  "component_groups": [
                    "adult"
                  ]
                }
              },
              // Transform to farmer villager
              {
                "filters": {
                  "subject": "other",
                  "test": "is_family",
                  "value": "farmer"
                },
                "add": {
                  "component_groups": [
                    "farmer",
                    "behavior_peasant",
                    "farmer_schedule"
                  ]
                }
              },
              // Transform to fisherman villager
              {
                "filters": {
                  "subject": "other",
                  "test": "is_family",
                  "value": "fisherman"
                },
                "add": {
                  "component_groups": [
                    "fisherman",
                    "behavior_peasant",
                    "fisher_schedule"
                  ]
                }
              },
              // Transform to shepherd villager
              {
                "filters": {
                  "subject": "other",
                  "test": "is_family",
                  "value": "shepherd"
                },
                "add": {
                  "component_groups": [
                    "shepherd",
                    "behavior_peasant",
                    "work_schedule"
                  ]
                }
              },
              // Transform to fletcher villager
              {
                "filters": {
                  "subject": "other",
                  "test": "is_family",
                  "value": "fletcher"
                },
                "add": {
                  "component_groups": [
                    "fletcher",
                    "behavior_peasant",
                    "work_schedule"
                  ]
                }
              },
              // Transform to librarian villager
              {
                "filters": {
                  "subject": "other",
                  "test": "is_family",
                  "value": "librarian"
                },
                "add": {
                  "component_groups": [
                    "librarian",
                    "behavior_non_peasant",
                    "librarian_schedule"
                  ]
                }
              },
              // Transform to cartographer villager
              {
                "filters": {
                  "subject": "other",
                  "test": "is_family",
                  "value": "cartographer"
                },
                "add": {
                  "component_groups": [
                    "cartographer",
                    "behavior_non_peasant",
                    "work_schedule"
                  ]
                }
              },
              // Transform to cleric villager
              {
                "filters": {
                  "subject": "other",
                  "test": "is_family",
                  "value": "cleric"
                },
                "add": {
                  "component_groups": [
                    "cleric",
                    "behavior_non_peasant",
                    "work_schedule"
                  ]
                }
              },
              // Transform to armorer villager
              {
                "filters": {
                  "subject": "other",
                  "test": "is_family",
                  "value": "armorer"
                },
                "add": {
                  "component_groups": [
                    "armorer",
                    "behavior_non_peasant",
                    "work_schedule"
                  ]
                }
              },
              // Transform to weaponsmith villager
              {
                "filters": {
                  "subject": "other",
                  "test": "is_family",
                  "value": "weaponsmith"
                },
                "add": {
                  "component_groups": [
                    "weaponsmith",
                    "behavior_non_peasant",
                    "work_schedule"
                  ]
                }
              },
              // Transform to toolsmith villager
              {
                "filters": {
                  "subject": "other",
                  "test": "is_family",
                  "value": "toolsmith"
                },
                "add": {
                  "component_groups": [
                    "toolsmith",
                    "behavior_non_peasant",
                    "work_schedule"
                  ]
                }
              },
              // Transform to butcher villager
              {
                "filters": {
                  "subject": "other",
                  "test": "is_family",
                  "value": "butcher"
                },
                "add": {
                  "component_groups": [
                    "butcher",
                    "behavior_non_peasant",
                    "work_schedule"
                  ]
                }
              },
              // Transform to leatherworker villager
              {
                "filters": {
                  "subject": "other",
                  "test": "is_family",
                  "value": "leatherworker"
                },
                "add": {
                  "component_groups": [
                    "leatherworker",
                    "behavior_non_peasant",
                    "work_schedule"
                  ]
                }
              },
              // Transform to mason villager
              {
                "filters": {
                  "subject": "other",
                  "test": "is_family",
                  "value": "stone_mason"
                },
                "add": {
                  "component_groups": [
                    "mason",
                    "behavior_non_peasant",
                    "work_schedule"
                  ]
                }
              }
            ]
          },
          {
            // Transform from zombie to correct villager skin (mark var already set)
            "filters": {
              "test": "is_family",
              "operator": "==",
              "subject": "other",
              "value": "zombie_villager"
            },
            "sequence": [
              {
                "filters": {
                  "subject": "other",
                  "test": "is_skin_id",
                  "value": 0
                },
                "add": {
                  "component_groups": [
                    "villager_skin_0"
                  ]
                }
              },
              {
                "filters": {
                  "subject": "other",
                  "test": "is_skin_id",
                  "value": 1
                },
                "add": {
                  "component_groups": [
                    "villager_skin_1"
                  ]
                }
              },
              {
                "filters": {
                  "subject": "other",
                  "test": "is_skin_id",
                  "value": 2
                },
                "add": {
                  "component_groups": [
                    "villager_skin_2"
                  ]
                }
              },
              {
                "filters": {
                  "subject": "other",
                  "test": "is_skin_id",
                  "value": 3
                },
                "add": {
                  "component_groups": [
                    "villager_skin_3"
                  ]
                }
              },
              {
                "filters": {
                  "subject": "other",
                  "test": "is_skin_id",
                  "value": 4
                },
                "add": {
                  "component_groups": [
                    "villager_skin_4"
                  ]
                }
              },
              {
                "filters": {
                  "subject": "other",
                  "test": "is_skin_id",
                  "value": 5
                },
                "add": {
                  "component_groups": [
                    "villager_skin_5"
                  ]
                }
              },
              {
                "filters": {
                  "subject": "other",
                  "test": "is_mark_variant",
                  "value": 1
                },
                "add": {
                  "component_groups": [
                    "desert_villager"
                  ]
                }
              },
              {
                "filters": {
                  "subject": "other",
                  "test": "is_mark_variant",
                  "value": 2
                },
                "add": {
                  "component_groups": [
                    "jungle_villager"
                  ]
                }
              },
              {
                "filters": {
                  "subject": "other",
                  "test": "is_mark_variant",
                  "value": 3
                },
                "add": {
                  "component_groups": [
                    "savanna_villager"
                  ]
                }
              },
              {
                "filters": {
                  "subject": "other",
                  "test": "is_mark_variant",
                  "value": 4
                },
                "add": {
                  "component_groups": [
                    "snow_villager"
                  ]
                }
              },
              {
                "filters": {
                  "subject": "other",
                  "test": "is_mark_variant",
                  "value": 5
                },
                "add": {
                  "component_groups": [
                    "swamp_villager"
                  ]
                }
              },
              {
                "filters": {
                  "subject": "other",
                  "test": "is_mark_variant",
                  "value": 6
                },
                "add": {
                  "component_groups": [
                    "taiga_villager"
                  ]
                }
              }
            ]
          },
          {
            // Transform from v1 - > v2 to correct villager skin (mark var not set so test biome)
            "filters": {
              "test": "is_family",
              "operator": "==",
              "subject": "other",
              "value": "villager"
            },
            "sequence": [
              {
                "randomize": [
                  {
                    "add": {
                      "component_groups": [
                        "villager_skin_0"
                      ]
                    },
                    "weight": 1
                  },
                  {
                    "add": {
                      "component_groups": [
                        "villager_skin_1"
                      ]
                    },
                    "weight": 1
                  },
                  {
                    "add": {
                      "component_groups": [
                        "villager_skin_2"
                      ]
                    },
                    "weight": 1
                  },
                  {
                    "add": {
                      "component_groups": [
                        "villager_skin_3"
                      ]
                    },
                    "weight": 1
                  },
                  {
                    "add": {
                      "component_groups": [
                        "villager_skin_4"
                      ]
                    },
                    "weight": 1
                  },
                  {
                    "add": {
                      "component_groups": [
                        "villager_skin_5"
                      ]
                    },
                    "weight": 1
                  }
                ]
              },
              {
                "filters": {
                  "any_of": [
                    {
                      "test": "has_biome_tag",
                      "value": "desert"
                    },
                    {
                      "test": "has_biome_tag",
                      "value": "mesa"
                    }
                  ]
                },
                "add": {
                  "component_groups": [
                    "desert_villager"
                  ]
                }
              },
              {
                "filters": {
                  "test": "has_biome_tag",
                  "value": "jungle"
                },
                "add": {
                  "component_groups": [
                    "jungle_villager"
                  ]
                }
              },
              {
                "filters": {
                  "test": "has_biome_tag",
                  "value": "savanna"
                },
                "add": {
                  "component_groups": [
                    "savanna_villager"
                  ]
                }
              },
              {
                "filters": {
                  "any_of": [
                    {
                      "all_of": [
                        {
                          "test": "has_biome_tag",
                          "value": "cold"
                        },
                        {
                          "test": "has_biome_tag",
                          "operator": "!=",
                          "value": "ocean"
                        }
                      ]
                    },
                    {
                      "test": "has_biome_tag",
                      "value": "frozen"
                    }
                  ]
                },
                "add": {
                  "component_groups": [
                    "snow_villager"
                  ]
                }
              },
              {
                "filters": {
                  "any_of": [
                    {
                      "test": "has_biome_tag",
                      "value": "swamp"
                    },
                    {
                      "test": "has_biome_tag",
                      "value": "mangrove_swamp"
                    }
                  ]
                },
                "add": {
                  "component_groups": [
                    "swamp_villager"
                  ]
                }
              },
              {
                "filters": {
                  "all_of": [
                    {
                      "any_of": [
                        {
                          "test": "has_biome_tag",
                          "value": "taiga"
                        },
                        {
                          "test": "has_biome_tag",
                          "value": "extreme_hills"
                        }
                      ]
                    },
                    {
                      "test": "has_biome_tag",
                      "operator": "!=",
                      "value": "cold"
                    }
                  ]
                },
                "add": {
                  "component_groups": [
                    "taiga_villager"
                  ]
                }
              }
            ]
          }
        ]
      },
      "minecraft:become_sheperd": {
        "add": {
          "component_groups": [
            "shepherd",
            "adult",
            "behavior_non_peasant",
            "work_schedule"
          ]
        },
        "remove": {
          "component_groups": [
            "baby",
            "child_schedule",
            "job_specific_goals",
            "trade_components"
          ]
        }
      },
      "minecraft:schedule_play_villager": {
        "add": {
          "component_groups": [
            "play_schedule_villager"
          ]
        },
        "remove": {
          "component_groups": [
            "home_schedule_villager",
            "gather_schedule_villager",
            "wander_schedule_villager",
            "bed_schedule_villager",
            "job_specific_goals",
            "trade_resupply_component_group"
          ]
        }
      },
      "minecraft:become_toolsmith": {
        "add": {
          "component_groups": [
            "toolsmith",
            "adult",
            "behavior_non_peasant",
            "work_schedule"
          ]
        },
        "remove": {
          "component_groups": [
            "baby",
            "child_schedule",
            "job_specific_goals",
            "trade_components"
          ]
        }
      },
      "minecraft:spawn_from_village": {
        "sequence": [
          {
            "randomize": [
              {
                "add": {
                  "component_groups": [
                    "baby",
                    "child_schedule"
                  ]
                },
                "weight": 5
              },
              {
                "add": {
                  "component_groups": [
                    "adult"
                  ]
                },
                "sequence": [
                  {
                    "randomize": [
                      {
                        "add": {
                          "component_groups": [
                            "unskilled",
                            "behavior_peasant",
                            "basic_schedule"
                          ]
                        },
                        "weight": 90
                      },
                      {
                        "add": {
                          "component_groups": [
                            "nitwit",
                            "behavior_peasant",
                            "jobless_schedule"
                          ]
                        },
                        "weight": 10
                      }
                    ]
                  }
                ],
                "weight": 95
              }
            ],
            "filters": {
              "test": "has_component",
              "operator": "!=",
              "value": "minecraft:variant"
            }
          },
          {
            "randomize": [
              {
                "add": {
                  "component_groups": [
                    "villager_skin_0"
                  ]
                },
                "weight": 1
              },
              {
                "add": {
                  "component_groups": [
                    "villager_skin_1"
                  ]
                },
                "weight": 1
              },
              {
                "add": {
                  "component_groups": [
                    "villager_skin_2"
                  ]
                },
                "weight": 1
              },
              {
                "add": {
                  "component_groups": [
                    "villager_skin_3"
                  ]
                },
                "weight": 1
              },
              {
                "add": {
                  "component_groups": [
                    "villager_skin_4"
                  ]
                },
                "weight": 1
              },
              {
                "add": {
                  "component_groups": [
                    "villager_skin_5"
                  ]
                },
                "weight": 1
              }
            ],
            "filters": {
              "test": "has_component",
              "operator": "!=",
              "value": "minecraft:skin_id"
            }
          },
          {
            "filters": {
              "any_of": [
                {
                  "test": "has_biome_tag",
                  "value": "desert"
                },
                {
                  "test": "has_biome_tag",
                  "value": "mesa"
                }
              ]
            },
            "add": {
              "component_groups": [
                "desert_villager"
              ]
            }
          },
          {
            "filters": {
              "test": "has_biome_tag",
              "value": "jungle"
            },
            "add": {
              "component_groups": [
                "jungle_villager"
              ]
            }
          },
          {
            "filters": {
              "test": "has_biome_tag",
              "value": "savanna"
            },
            "add": {
              "component_groups": [
                "savanna_villager"
              ]
            }
          },
          {
            "filters": {
              "any_of": [
                {
                  "all_of": [
                    {
                      "test": "has_biome_tag",
                      "value": "cold"
                    },
                    {
                      "test": "has_biome_tag",
                      "operator": "!=",
                      "value": "ocean"
                    }
                  ]
                },
                {
                  "test": "has_biome_tag",
                  "value": "frozen"
                }
              ]
            },
            "add": {
              "component_groups": [
                "snow_villager"
              ]
            }
          },
          {
            "filters": {
              "any_of": [
                {
                  "test": "has_biome_tag",
                  "value": "swamp"
                },
                {
                  "test": "has_biome_tag",
                  "value": "mangrove_swamp"
                }
              ]
            },
            "add": {
              "component_groups": [
                "swamp_villager"
              ]
            }
          },
          {
            "filters": {
              "all_of": [
                {
                  "any_of": [
                    {
                      "test": "has_biome_tag",
                      "value": "taiga"
                    },
                    {
                      "test": "has_biome_tag",
                      "value": "extreme_hills"
                    }
                  ]
                },
                {
                  "test": "has_biome_tag",
                  "operator": "!=",
                  "value": "cold"
                }
              ]
            },
            "add": {
              "component_groups": [
                "taiga_villager"
              ]
            }
          }
        ]
      },
      "minecraft:schedule_work_farmer": {
        "add": {
          "component_groups": [
            "work_schedule_farmer"
          ]
        },
        "remove": {
          "component_groups": [
            "home_schedule_villager",
            "gather_schedule_villager",
            "wander_schedule_villager",
            "bed_schedule_villager",
            "job_specific_goals",
            "play_schedule_villager"
          ]
        }
      },
      "minecraft:become_unskilled": {
        "add": {
          "component_groups": [
            "adult",
            "unskilled",
            "behavior_peasant",
            "basic_schedule"
          ]
        },
        "remove": {
          "component_groups": [
            "baby",
            "child_schedule",
            "job_specific_goals",
            "trade_components"
          ]
        }
      },
      "minecraft:become_weaponsmith": {
        "add": {
          "component_groups": [
            "weaponsmith",
            "adult",
            "behavior_non_peasant",
            "work_schedule"
          ]
        },
        "remove": {
          "component_groups": [
            "baby",
            "child_schedule",
            "job_specific_goals",
            "trade_components"
          ]
        }
      },
      "minecraft:entity_born": {
        "sequence": [
          {
            "randomize": [
              {
                "add": {
                  "component_groups": [
                    "villager_skin_0"
                  ]
                },
                "weight": 1
              },
              {
                "add": {
                  "component_groups": [
                    "villager_skin_1"
                  ]
                },
                "weight": 1
              },
              {
                "add": {
                  "component_groups": [
                    "villager_skin_2"
                  ]
                },
                "weight": 1
              },
              {
                "add": {
                  "component_groups": [
                    "villager_skin_3"
                  ]
                },
                "weight": 1
              },
              {
                "add": {
                  "component_groups": [
                    "villager_skin_4"
                  ]
                },
                "weight": 1
              },
              {
                "add": {
                  "component_groups": [
                    "villager_skin_5"
                  ]
                },
                "weight": 1
              }
            ],
            "filters": {
              "test": "has_component",
              "operator": "!=",
              "value": "minecraft:skin_id"
            }
          },
          {
            "add": {
              "component_groups": [
                "baby",
                "unskilled",
                "child_schedule"
              ]
            }
          },
          {
            "filters": {
              "test": "has_biome_tag",
              "value": "desert"
            },
            "add": {
              "component_groups": [
                "desert_villager"
              ]
            }
          },
          {
            "filters": {
              "test": "has_biome_tag",
              "value": "jungle"
            },
            "add": {
              "component_groups": [
                "jungle_villager"
              ]
            }
          },
          {
            "filters": {
              "test": "has_biome_tag",
              "value": "savanna"
            },
            "add": {
              "component_groups": [
                "savanna_villager"
              ]
            }
          },
          {
            "filters": {
              "any_of": [
                {
                  "test": "has_biome_tag",
                  "value": "cold"
                },
                {
                  "test": "has_biome_tag",
                  "value": "frozen"
                }
              ]
            },
            "add": {
              "component_groups": [
                "snow_villager"
              ]
            }
          },
          {
            "filters": {
              "any_of": [
                {
                  "test": "has_biome_tag",
                  "value": "swamp"
                },
                {
                  "test": "has_biome_tag",
                  "value": "mangrove_swamp"
                }
              ]
            },
            "add": {
              "component_groups": [
                "swamp_villager"
              ]
            }
          },
          {
            "filters": {
              "test": "has_biome_tag",
              "value": "taiga"
            },
            "add": {
              "component_groups": [
                "taiga_villager"
              ]
            }
          }
        ]
      },
      "minecraft:entity_spawned": {
        "sequence": [
          {
            "randomize": [
              {
                "add": {
                  "component_groups": [
                    "villager_skin_0"
                  ]
                },
                "weight": 1
              },
              {
                "add": {
                  "component_groups": [
                    "villager_skin_1"
                  ]
                },
                "weight": 1
              },
              {
                "add": {
                  "component_groups": [
                    "villager_skin_2"
                  ]
                },
                "weight": 1
              },
              {
                "add": {
                  "component_groups": [
                    "villager_skin_3"
                  ]
                },
                "weight": 1
              },
              {
                "add": {
                  "component_groups": [
                    "villager_skin_4"
                  ]
                },
                "weight": 1
              },
              {
                "add": {
                  "component_groups": [
                    "villager_skin_5"
                  ]
                },
                "weight": 1
              }
            ],
            "filters": {
              "test": "has_component",
              "operator": "!=",
              "value": "minecraft:skin_id"
            }
          },
          {
            "randomize": [
              {
                "add": {
                  "component_groups": [
                    "baby",
                    "child_schedule"
                  ]
                },
                "weight": 5
              },
              {
                "sequence": [
                  {
                    "add": {
                      "component_groups": [
                        "adult"
                      ]
                    }
                  },
                  {
                    "randomize": [
                      {
                        "add": {
                          "component_groups": [
                            "farmer",
                            "behavior_peasant",
                            "basic_schedule"
                          ]
                        },
                        "weight": 1
                      },
                      {
                        "add": {
                          "component_groups": [
                            "fisherman",
                            "behavior_peasant",
                            "basic_schedule"
                          ]
                        },
                        "weight": 1
                      },
                      {
                        "add": {
                          "component_groups": [
                            "shepherd",
                            "behavior_peasant",
                            "basic_schedule"
                          ]
                        },
                        "weight": 1
                      },
                      {
                        "add": {
                          "component_groups": [
                            "fletcher",
                            "behavior_peasant",
                            "basic_schedule"
                          ]
                        },
                        "weight": 1
                      },
                      {
                        "add": {
                          "component_groups": [
                            "librarian",
                            "behavior_non_peasant",
                            "basic_schedule"
                          ]
                        },
                        "weight": 1
                      },
                      {
                        "add": {
                          "component_groups": [
                            "cartographer",
                            "behavior_non_peasant",
                            "basic_schedule"
                          ]
                        },
                        "weight": 1
                      },
                      {
                        "add": {
                          "component_groups": [
                            "cleric",
                            "behavior_non_peasant",
                            "basic_schedule"
                          ]
                        },
                        "weight": 1
                      },
                      {
                        "add": {
                          "component_groups": [
                            "armorer",
                            "behavior_non_peasant",
                            "basic_schedule"
                          ]
                        },
                        "weight": 1
                      },
                      {
                        "add": {
                          "component_groups": [
                            "weaponsmith",
                            "behavior_non_peasant",
                            "basic_schedule"
                          ]
                        },
                        "weight": 1
                      },
                      {
                        "add": {
                          "component_groups": [
                            "toolsmith",
                            "behavior_non_peasant",
                            "basic_schedule"
                          ]
                        },
                        "weight": 1
                      },
                      {
                        "add": {
                          "component_groups": [
                            "butcher",
                            "behavior_non_peasant",
                            "basic_schedule"
                          ]
                        },
                        "weight": 1
                      },
                      {
                        "add": {
                          "component_groups": [
                            "leatherworker",
                            "behavior_non_peasant",
                            "basic_schedule"
                          ]
                        },
                        "weight": 1
                      },
                      {
                        "add": {
                          "component_groups": [
                            "mason",
                            "behavior_non_peasant",
                            "basic_schedule"
                          ]
                        },
                        "weight": 1
                      },
                      {
                        "add": {
                          "component_groups": [
                            "nitwit",
                            "behavior_peasant",
                            "jobless_schedule"
                          ]
                        },
                        "weight": 1
                      }
                    ]
                  }
                ],
                "weight": 95
              }
            ],
            "filters": {
              "test": "has_component",
              "operator": "!=",
              "value": "minecraft:variant"
            }
          },
          {
            "filters": {
              "any_of": [
                {
                  "test": "has_biome_tag",
                  "value": "desert"
                },
                {
                  "test": "has_biome_tag",
                  "value": "mesa"
                }
              ]
            },
            "add": {
              "component_groups": [
                "desert_villager"
              ]
            }
          },
          {
            "filters": {
              "test": "has_biome_tag",
              "value": "jungle"
            },
            "add": {
              "component_groups": [
                "jungle_villager"
              ]
            }
          },
          {
            "filters": {
              "test": "has_biome_tag",
              "value": "savanna"
            },
            "add": {
              "component_groups": [
                "savanna_villager"
              ]
            }
          },
          {
            "filters": {
              "any_of": [
                {
                  "all_of": [
                    {
                      "test": "has_biome_tag",
                      "value": "cold"
                    },
                    {
                      "test": "has_biome_tag",
                      "operator": "!=",
                      "value": "ocean"
                    }
                  ]
                },
                {
                  "test": "has_biome_tag",
                  "value": "frozen"
                }
              ]
            },
            "add": {
              "component_groups": [
                "snow_villager"
              ]
            }
          },
          {
            "filters": {
              "any_of": [
                {
                  "test": "has_biome_tag",
                  "value": "swamp"
                },
                {
                  "test": "has_biome_tag",
                  "value": "mangrove_swamp"
                }
              ]
            },
            "add": {
              "component_groups": [
                "swamp_villager"
              ]
            }
          },
          {
            "filters": {
              "all_of": [
                {
                  "any_of": [
                    {
                      "test": "has_biome_tag",
                      "value": "taiga"
                    },
                    {
                      "test": "has_biome_tag",
                      "value": "extreme_hills"
                    }
                  ]
                },
                {
                  "test": "has_biome_tag",
                  "operator": "!=",
                  "value": "cold"
                }
              ]
            },
            "add": {
              "component_groups": [
                "taiga_villager"
              ]
            }
          }
        ]
      },
      "minecraft:resupply_trades": {
        "add": {
          "component_groups": [
            "trade_resupply_component_group"
          ]
        }
      },
      "minecraft:schedule_home_villager": {
        "add": {
          "component_groups": [
            "home_schedule_villager"
          ]
        },
        "remove": {
          "component_groups": [
            "bed_schedule_villager",
            "wander_schedule_villager",
            "gather_schedule_villager",
            "job_specific_goals",
            "play_schedule_villager",
            "trade_resupply_component_group"
          ]
        }
      },
      "minecraft:schedule_bed_villager": {
        "add": {
          "component_groups": [
            "bed_schedule_villager"
          ]
        },
        "remove": {
          "component_groups": [
            "home_schedule_villager",
            "gather_schedule_villager",
            "wander_schedule_villager",
            "job_specific_goals",
            "play_schedule_villager",
            "trade_resupply_component_group"
          ]
        }
      },
      "minecraft:schedule_gather_villager": {
        "add": {
          "component_groups": [
            "gather_schedule_villager"
          ]
        },
        "remove": {
          "component_groups": [
            "bed_schedule_villager",
            "wander_schedule_villager",
            "home_schedule_villager",
            "job_specific_goals",
            "play_schedule_villager",
            "trade_resupply_component_group"
          ]
        }
      },
      "minecraft:schedule_wander_villager": {
        "add": {
          "component_groups": [
            "wander_schedule_villager"
          ]
        },
        "remove": {
          "component_groups": [
            "home_schedule_villager",
            "bed_schedule_villager",
            "wander_schedule_villager",
            "job_specific_goals",
            "play_schedule_villager",
            "trade_resupply_component_group"
          ]
        }
      },
      "minecraft:schedule_work_librarian": {
        "add": {
          "component_groups": [
            "work_schedule_librarian"
          ]
        },
        "remove": {
          "component_groups": [
            "home_schedule_villager",
            "gather_schedule_villager",
            "wander_schedule_villager",
            "bed_schedule_villager",
            "job_specific_goals",
            "play_schedule_villager"
          ]
        }
      },
      "minecraft:spawn_cleric": {
        "add": {
          "component_groups": [
            "cleric",
            "adult",
            "behavior_non_peasant",
            "basic_schedule"
          ]
        },
        "remove": {
          "component_groups": [
            "baby",
            "child_schedule"
          ]
        }
      },
      "minecraft:spawn_armorer": {
        "randomize": [
          {
            "add": {
              "component_groups": [
                "armorer",
                "adult",
                "behavior_non_peasant",
                "basic_schedule"
              ]
            },
            "remove": {
              "component_groups": [
                "baby",
                "child_schedule"
              ]
            },
            "weight": 6
          },
          {
            "add": {
              "component_groups": [
                "weaponsmith",
                "adult",
                "behavior_non_peasant",
                "basic_schedule"
              ]
            },
            "remove": {
              "component_groups": [
                "baby",
                "child_schedule"
              ]
            },
            "weight": 6
          },
          {
            "add": {
              "component_groups": [
                "toolsmith",
                "adult",
                "behavior_non_peasant",
                "basic_schedule"
              ]
            },
            "remove": {
              "component_groups": [
                "baby",
                "child_schedule"
              ]
            },
            "weight": 6
          }
        ]
      },
      "minecraft:spawn_butcher": {
        "randomize": [
          {
            "add": {
              "component_groups": [
                "butcher",
                "adult",
                "behavior_non_peasant",
                "basic_schedule"
              ]
            },
            "remove": {
              "component_groups": [
                "baby",
                "child_schedule"
              ]
            },
            "weight": 10
          },
          {
            "add": {
              "component_groups": [
                "leatherworker",
                "adult",
                "behavior_non_peasant",
                "basic_schedule"
              ]
            },
            "remove": {
              "component_groups": [
                "baby",
                "child_schedule"
              ]
            },
            "weight": 10
          }
        ]
      },
      "minecraft:spawn_farmer": {
        "randomize": [
          {
            "add": {
              "component_groups": [
                "farmer",
                "adult",
                "behavior_peasant",
                "basic_schedule"
              ]
            },
            "remove": {
              "component_groups": [
                "baby",
                "child_schedule"
              ]
            },
            "weight": 5
          },
          {
            "add": {
              "component_groups": [
                "fisherman",
                "adult",
                "behavior_peasant",
                "basic_schedule"
              ]
            },
            "remove": {
              "component_groups": [
                "baby",
                "child_schedule"
              ]
            },
            "weight": 5
          },
          {
            "add": {
              "component_groups": [
                "shepherd",
                "adult",
                "behavior_peasant",
                "basic_schedule"
              ]
            },
            "remove": {
              "component_groups": [
                "baby",
                "child_schedule"
              ]
            },
            "weight": 5
          },
          {
            "add": {
              "component_groups": [
                "fletcher",
                "adult",
                "behavior_peasant",
                "basic_schedule"
              ]
            },
            "remove": {
              "component_groups": [
                "baby",
                "child_schedule"
              ]
            },
            "weight": 5
          },
          {
            "add": {
              "component_groups": [
                "mason",
                "adult",
                "behavior_non_peasant",
                "work_schedule"
              ]
            },
            "remove": {
              "component_groups": [
                "baby",
                "child_schedule"
              ]
            },
            "weight": 5
          }
        ]
      },
      "minecraft:spawn_librarian": {
        "randomize": [
          {
            "add": {
              "component_groups": [
                "librarian",
                "adult",
                "behavior_non_peasant",
                "basic_schedule"
              ]
            },
            "remove": {
              "component_groups": [
                "baby",
                "child_schedule"
              ]
            },
            "weight": 20
          },
          {
            "add": {
              "component_groups": [
                "cartographer",
                "behavior_non_peasant",
                "basic_schedule"
              ]
            },
            "remove": {
              "component_groups": [
                "baby",
                "child_schedule"
              ]
            },
            "weight": 20
          }
        ]
      }
    }
  }
}