{
  "format_version": "1.10.0",
  "minecraft:entity": {
    "description": {
      "identifier": "pa:v",
      "is_spawnable": true,
      "is_summonable": true,
      "is_experimental": false
    },
    "component_groups": {
      "become_witch": {
        "minecraft:transformation": {
          "into": "minecraft:witch",
          "delay": 0.5
        }
      },
      "become_villager_v2": {
        "minecraft:transformation": {
          "into": "minecraft:villager_v2",
          "keep_level": true
        }
      },
      "become_zombie": {
        "minecraft:transformation": {
          "into": "minecraft:zombie_villager"
        }
      },
      "behavior_peasant": {
        "minecraft:shareables": {
          "items": [
            {
              "item": "minecraft:bread",
              "want_amount": 3,
              "surplus_amount": 6
            },
            {
              "item": "minecraft:carrot",
              "want_amount": 60,
              "surplus_amount": 4
            },
            {
              "item": "minecraft:potato",
              "want_amount": 60,
              "surplus_amount": 24
            },
            {
              "item": "minecraft:beetroot",
              "want_amount": 60,
              "surplus_amount": 24
            },
            {
              "item": "minecraft:wheat_seeds",
              "want_amount": 64,
              "surplus_amount": 64
            },
            {
              "item": "minecraft:beetroot_seeds",
              "want_amount": 64,
              "surplus_amount": 64
            },
            {
              "item": "minecraft:wheat",
              "want_amount": 45,
              "surplus_amount": 18,
              "craft_into": "minecraft:bread"
            }
          ]
        },
        "minecraft:behavior.harvest_farm_block": {
          "priority": 9,
          "speed_multiplier": 0.5
        }
      },
      "behavior_non_peasant": {
        "minecraft:shareables": {
          "items": [
            {
              "item": "minecraft:bread",
              "want_amount": 3,
              "surplus_amount": 6
            },
            {
              "item": "minecraft:carrot",
              "want_amount": 12,
              "surplus_amount": 24
            },
            {
              "item": "minecraft:potato",
              "want_amount": 12,
              "surplus_amount": 24
            },
            {
              "item": "minecraft:beetroot",
              "want_amount": 12,
              "surplus_amount": 24
            }
          ]
        }
      },
      "farmer": {
        "minecraft:type_family": {
          "family": [
            "toilet",
            "peasant",
            "farmer"
          ]
        },
        "minecraft:variant": {
          "value": 0
        },
        "minecraft:trade_table": {
          "display_name": "entity.villager.farmer",
          "table": "trading/farmer_trades.json",
          "convert_trades_economy": true
        }
      },
      "fisherman": {
        "minecraft:type_family": {
          "family": [
            "toilet",
            "peasant",
            "fisherman"
          ]
        },
        "minecraft:variant": {
          "value": 0
        },
        "minecraft:trade_table": {
          "display_name": "entity.villager.fisherman",
          "table": "trading/fisherman_trades.json",
          "convert_trades_economy": true
        }
      },
      "shepherd": {
        "minecraft:type_family": {
          "family": [
            "toilet",
            "peasant",
            "shepherd"
          ]
        },
        "minecraft:variant": {
          "value": 0
        },
        "minecraft:trade_table": {
          "display_name": "entity.villager.shepherd",
          "table": "trading/shepherd_trades.json",
          "convert_trades_economy": true
        }
      },
      "fletcher": {
        "minecraft:type_family": {
          "family": [
            "toilet",
            "peasant",
            "fletcher"
          ]
        },
        "minecraft:variant": {
          "value": 0
        },
        "minecraft:trade_table": {
          "display_name": "entity.villager.fletcher",
          "table": "trading/fletcher_trades.json",
          "convert_trades_economy": true
        }
      },
      "librarian": {
        "minecraft:type_family": {
          "family": [
            "toilet",
            "librarian"
          ]
        },
        "minecraft:variant": {
          "value": 1
        },
        "minecraft:trade_table": {
          "display_name": "entity.villager.librarian",
          "table": "trading/librarian_trades.json",
          "convert_trades_economy": true
        }
      },
      "cartographer": {
        "minecraft:type_family": {
          "family": [
            "toilet",
            "cartographer"
          ]
        },
        "minecraft:variant": {
          "value": 1
        },
        "minecraft:trade_table": {
          "display_name": "entity.villager.cartographer",
          "table": "trading/cartographer_trades.json",
          "convert_trades_economy": true
        }
      },
      "cleric": {
        "minecraft:type_family": {
          "family": [
            "toilet",
            "priest",
            "cleric"
          ]
        },
        "minecraft:variant": {
          "value": 2
        },
        "minecraft:trade_table": {
          "display_name": "entity.villager.cleric",
          "table": "trading/cleric_trades.json",
          "convert_trades_economy": true
        }
      },
      "armorer": {
        "minecraft:type_family": {
          "family": [
            "toilet",
            "blacksmith",
            "armorer"
          ]
        },
        "minecraft:variant": {
          "value": 3
        },
        "minecraft:trade_table": {
          "display_name": "entity.villager.armor",
          "table": "trading/armorer_trades.json",
          "convert_trades_economy": true
        }
      },
      "weaponsmith": {
        "minecraft:type_family": {
          "family": [
            "toilet",
            "blacksmith",
            "weaponsmith"
          ]
        },
        "minecraft:variant": {
          "value": 3
        },
        "minecraft:trade_table": {
          "display_name": "entity.villager.weapon",
          "table": "trading/weapon_smith_trades.json",
          "convert_trades_economy": true
        }
      },
      "toolsmith": {
        "minecraft:type_family": {
          "family": [
            "toilet",
            "blacksmith",
            "toolsmith"
          ]
        },
        "minecraft:variant": {
          "value": 3
        },
        "minecraft:trade_table": {
          "display_name": "entity.villager.tool",
          "table": "trading/tool_smith_trades.json",
          "convert_trades_economy": true
        }
      },
      "butcher": {
        "minecraft:type_family": {
          "family": [
            "toilet",
            "artisan",
            "butcher"
          ]
        },
        "minecraft:variant": {
          "value": 4
        },
        "minecraft:trade_table": {
          "display_name": "entity.villager.butcher",
          "table": "trading/butcher_trades.json",
          "convert_trades_economy": true
        }
      },
      "leatherworker": {
        "minecraft:type_family": {
          "family": [
            "toilet",
            "artisan",
            "leatherworker"
          ]
        },
        "minecraft:variant": {
          "value": 4
        },
        "minecraft:trade_table": {
          "display_name": "entity.villager.leather",
          "table": "trading/leather_worker_trades.json",
          "convert_trades_economy": true
        }
      },
      "baby": {
        "minecraft:is_baby": {},
        "minecraft:scale": {
          "value": 0.5
        },
        "minecraft:ageable": {
          "duration": 1200,
          "grow_up": {
            "event": "minecraft:ageable_grow_up",
            "target": "self"
          }
        },
        "minecraft:behavior.take_flower": {
          "priority": 7
        },
        "minecraft:behavior.play": {
          "priority": 8,
          "speed_multiplier": 0.32
        }
      },
      "adult": {
        "minecraft:behavior.make_love": {
          "priority": 6
        },
        "minecraft:behavior.receive_love": {
          "priority": 7
        }
      },
      "minecraft:pig_transform": {
        "minecraft:transformation": {
          "into": "minecraft:zombie_villager"
        }
      }
    },
    "components": {
      "minecraft:type_family": {
        "family": [
          "toilet"
        ]
      },
      "minecraft:breathable": {
        "totalSupply": 15,
        "suffocateTime": 0
      },
      "minecraft:follow_range": {
        "max": 70,
        "value": 70
      },
      "minecraft:health": {
        "value": 20,
        "max": 20
      },
      "minecraft:collision_box": {
        "height": 1.8,
        "width": 0.6
      },
      "minecraft:nameable": {
        "alwaysShow": false,
        "allowNameTagRenaming": false
      },
      "minecraft:movement": {
        "value": 0.5
      },
      "minecraft:navigation.walk": {
        "is_amphibious": true,
        "can_path_over_water": true,
        "can_pass_doors": true,
        "can_open_doors": true,
        "can_walk": true,
        "avoid_water": true
      },
      "minecraft:annotation.open_door": {},
      "minecraft:movement.basic": {},
      "minecraft:jump.static": {},
      "minecraft:can_climb": {},
      "minecraft:inventory": {
        "inventory_size": 8,
        "private": true
      },
      "minecraft:damage_sensor": [
        {
          "on_damage": {
            "filters": {
              "test": "is_family",
              "subject": "other",
              "value": "lightning"
            },
            "event": "become_witch"
          },
          "deals_damage": false
        },
        {
          "on_damage": {
            "filters": {
              "test": "is_family",
              "subject": "other",
              "value": "lightning"
            },
            "event": "become_zombie"
          },
          "deals_damage": true
        }
      ],
      "minecraft:behavior.float": {
        "priority": 0
      },
      "minecraft:behavior.trade_with_player": {
        "priority": 1
      },
      "minecraft:behavior.look_at_trading_player": {
        "priority": 2
      },
      "minecraft:behavior.panic": {
        "priority": 3,
        "speed_multiplier": 0.6
      },
      "minecraft:behavior.move_indoors": {
        "priority": 4,
        "speed_multiplier": 0.8
      },
      "minecraft:behavior.restrict_open_door": {
        "priority": 5
      },
      "minecraft:behavior.open_door": {
        "priority": 6,
        "close_door_after": true
      },
      "minecraft:behavior.move_towards_restriction": {
        "priority": 7,
        "speed_multiplier": 0.6
      },
      "minecraft:behavior.share_items": {
        "priority": 8,
        "max_dist": 3,
        "goal_radius": 2,
        "speed_multiplier": 0.5,
        "entity_types": [
          {
            "filters": {
              "test": "is_family",
              "subject": "other",
              "value": "villager"
            }
          }
        ]
      },
      "minecraft:behavior.pickup_items": {
        "can_pickup_any_item": false,
        "can_pickup_to_hand_or_equipment": false,
        "goal_radius": "2",
        "max_dist": "3",
        "pickup_based_on_chance": false,
        "speed_multiplier": "0.5",
        "track_target": false
      },
      "minecraft:behavior.random_stroll": {
        "priority": 11,
        "speed_multiplier": 0.6
      },
      "minecraft:behavior.look_at_player": {
        "priority": 12,
        "look_distance": 8,
        "probability": 0.02
      },
      "minecraft:physics": {},
      "minecraft:experience_reward": {
        "on_death": "query.last_hit_by_player ? 10 : 0"
      },
      "minecraft:underwater_movement": {
        "value": 0.02
      },
      "minecraft:scale": {
        "value": 1
      },
      "minecraft:attack": {
        "damage": 2
      },
      "minecraft:behavior.melee_attack": {
        "priority": 2,
        "speed_multiplier": 1,
        "target_dist": 0,
        "max_dist": 3,
        "random_stop_interval": 100,
        "track_target": true,
        "reach_multiplier": 1.4
      },
      "minecraft:behavior.nearest_attackable_target": {
        "priority": 3,
        "within_radius": 25,
        "must_reach": false,
        "entity_types": [
          {
            "filters": {
              "any_of": [
                {
                  "test": "is_family",
                  "subject": "other",
                  "value": "player"
                },
                {
                  "test": "is_family",
                  "subject": "other",
                  "value": "man"
                },
                {
                  "test": "is_family",
                  "subject": "other",
                  "value": "villager"
                }
              ]
            },
            "max_dist": 35.0,
            "must_see": false
          }
        ],
        "must_see": false,
        "speed_multiplier": 1
      },
      "minecraft:behavior.hurt_by_target": {
        "priority": 3
      },
      "minecraft:behavior.owner_hurt_by_target": {
        "priority": 1
      },
      "minecraft:behavior.owner_hurt_target": {
        "priority": 2
      }
    },
    "events": {
      "become_witch": {
        "add": {
          "component_groups": [
            "become_witch"
          ]
        }
      },
      "minecraft:entity_spawned": {
        "sequence": [
          {
            "filters": {
              "test": "has_component",
              "operator": "!=",
              "value": "minecraft:variant"
            },
            "randomize": [
              {
                "weight": 5,
                "add": {
                  "component_groups": [
                    "baby"
                  ]
                }
              },
              {
                "weight": 95,
                "add": {
                  "component_groups": [
                    "adult"
                  ]
                }
              }
            ]
          },
          {
            "filters": {
              "test": "has_component",
              "operator": "!=",
              "value": "minecraft:variant"
            },
            "randomize": [
              {
                "weight": 5,
                "add": {
                  "component_groups": [
                    "farmer",
                    "behavior_peasant"
                  ]
                }
              },
              {
                "weight": 5,
                "add": {
                  "component_groups": [
                    "fisherman",
                    "behavior_peasant"
                  ]
                }
              },
              {
                "weight": 5,
                "add": {
                  "component_groups": [
                    "shepherd",
                    "behavior_peasant"
                  ]
                }
              },
              {
                "weight": 5,
                "add": {
                  "component_groups": [
                    "fletcher",
                    "behavior_peasant"
                  ]
                }
              },
              {
                "weight": 20,
                "add": {
                  "component_groups": [
                    "librarian",
                    "behavior_non_peasant"
                  ]
                }
              },
              {
                "weight": 20,
                "add": {
                  "component_groups": [
                    "cartographer",
                    "behavior_non_peasant"
                  ]
                }
              },
              {
                "weight": 20,
                "add": {
                  "component_groups": [
                    "cleric",
                    "behavior_non_peasant"
                  ]
                }
              },
              {
                "weight": 6,
                "add": {
                  "component_groups": [
                    "armorer",
                    "behavior_non_peasant"
                  ]
                }
              },
              {
                "weight": 6,
                "add": {
                  "component_groups": [
                    "weaponsmith",
                    "behavior_non_peasant"
                  ]
                }
              },
              {
                "weight": 6,
                "add": {
                  "component_groups": [
                    "toolsmith",
                    "behavior_non_peasant"
                  ]
                }
              },
              {
                "weight": 10,
                "add": {
                  "component_groups": [
                    "butcher",
                    "behavior_non_peasant"
                  ]
                }
              },
              {
                "weight": 10,
                "add": {
                  "component_groups": [
                    "leatherworker",
                    "behavior_non_peasant"
                  ]
                }
              }
            ]
          }
        ]
      },
      "minecraft:entity_transformed": {
        "sequence": [
          {
            "filters": {
              "test": "has_component",
              "subject": "other",
              "value": "minecraft:is_baby"
            },
            "add": {
              "component_groups": [
                "baby"
              ]
            }
          },
          {
            "filters": {
              "test": "has_component",
              "subject": "other",
              "operator": "!=",
              "value": "minecraft:is_baby"
            },
            "add": {
              "component_groups": [
                "adult"
              ]
            }
          },
          {
            "filters": {
              "test": "is_family",
              "subject": "other",
              "value": "farmer"
            },
            "add": {
              "component_groups": [
                "farmer",
                "behavior_peasant"
              ]
            }
          },
          {
            "filters": {
              "test": "is_family",
              "subject": "other",
              "value": "fisherman"
            },
            "add": {
              "component_groups": [
                "fisherman",
                "behavior_peasant"
              ]
            }
          },
          {
            "filters": {
              "test": "is_family",
              "subject": "other",
              "value": "shepherd"
            },
            "add": {
              "component_groups": [
                "shepherd",
                "behavior_peasant"
              ]
            }
          },
          {
            "filters": {
              "test": "is_family",
              "subject": "other",
              "value": "fletcher"
            },
            "add": {
              "component_groups": [
                "fletcher",
                "behavior_peasant"
              ]
            }
          },
          {
            "filters": {
              "test": "is_family",
              "subject": "other",
              "value": "librarian"
            },
            "add": {
              "component_groups": [
                "librarian",
                "behavior_non_peasant"
              ]
            }
          },
          {
            "filters": {
              "test": "is_family",
              "subject": "other",
              "value": "cartographer"
            },
            "add": {
              "component_groups": [
                "cartographer",
                "behavior_non_peasant"
              ]
            }
          },
          {
            "filters": {
              "test": "is_family",
              "subject": "other",
              "value": "cleric"
            },
            "add": {
              "component_groups": [
                "cleric",
                "behavior_non_peasant"
              ]
            }
          },
          {
            "filters": {
              "test": "is_family",
              "subject": "other",
              "value": "armorer"
            },
            "add": {
              "component_groups": [
                "armorer",
                "behavior_non_peasant"
              ]
            }
          },
          {
            "filters": {
              "test": "is_family",
              "subject": "other",
              "value": "weaponsmith"
            },
            "add": {
              "component_groups": [
                "weaponsmith",
                "behavior_non_peasant"
              ]
            }
          },
          {
            "filters": {
              "test": "is_family",
              "subject": "other",
              "value": "toolsmith"
            },
            "add": {
              "component_groups": [
                "toolsmith",
                "behavior_non_peasant"
              ]
            }
          },
          {
            "filters": {
              "test": "is_family",
              "subject": "other",
              "value": "butcher"
            },
            "add": {
              "component_groups": [
                "butcher",
                "behavior_non_peasant"
              ]
            }
          },
          {
            "filters": {
              "test": "is_family",
              "subject": "other",
              "value": "leatherworker"
            },
            "add": {
              "component_groups": [
                "leatherworker",
                "behavior_non_peasant"
              ]
            }
          }
        ]
      },
      "minecraft:entity_born": {
        "sequence": [
          {
            "add": {
              "component_groups": [
                "baby"
              ]
            }
          },
          {
            "randomize": [
              {
                "weight": 5,
                "add": {
                  "component_groups": [
                    "farmer",
                    "behavior_peasant"
                  ]
                }
              },
              {
                "weight": 5,
                "add": {
                  "component_groups": [
                    "fisherman",
                    "behavior_peasant"
                  ]
                }
              },
              {
                "weight": 5,
                "add": {
                  "component_groups": [
                    "shepherd",
                    "behavior_peasant"
                  ]
                }
              },
              {
                "weight": 5,
                "add": {
                  "component_groups": [
                    "fletcher",
                    "behavior_peasant"
                  ]
                }
              },
              {
                "weight": 20,
                "add": {
                  "component_groups": [
                    "librarian",
                    "behavior_non_peasant"
                  ]
                }
              },
              {
                "weight": 20,
                "add": {
                  "component_groups": [
                    "cartographer",
                    "behavior_non_peasant"
                  ]
                }
              },
              {
                "weight": 20,
                "add": {
                  "component_groups": [
                    "cleric",
                    "behavior_non_peasant"
                  ]
                }
              },
              {
                "weight": 6,
                "add": {
                  "component_groups": [
                    "armorer",
                    "behavior_non_peasant"
                  ]
                }
              },
              {
                "weight": 6,
                "add": {
                  "component_groups": [
                    "weaponsmith",
                    "behavior_non_peasant"
                  ]
                }
              },
              {
                "weight": 6,
                "add": {
                  "component_groups": [
                    "toolsmith",
                    "behavior_non_peasant"
                  ]
                }
              },
              {
                "weight": 10,
                "add": {
                  "component_groups": [
                    "butcher",
                    "behavior_non_peasant"
                  ]
                }
              },
              {
                "weight": 10,
                "add": {
                  "component_groups": [
                    "leatherworker",
                    "behavior_non_peasant"
                  ]
                }
              }
            ]
          }
        ]
      },
      "minecraft:spawn_farmer": {
        "randomize": [
          {
            "weight": 5,
            "add": {
              "component_groups": [
                "farmer",
                "adult",
                "behavior_peasant"
              ]
            },
            "remove": {
              "component_groups": [
                "baby"
              ]
            }
          },
          {
            "weight": 5,
            "add": {
              "component_groups": [
                "fisherman",
                "adult",
                "behavior_peasant"
              ]
            },
            "remove": {
              "component_groups": [
                "baby"
              ]
            }
          },
          {
            "weight": 5,
            "add": {
              "component_groups": [
                "shepherd",
                "adult",
                "behavior_peasant"
              ]
            },
            "remove": {
              "component_groups": [
                "baby"
              ]
            }
          },
          {
            "weight": 5,
            "add": {
              "component_groups": [
                "fletcher",
                "adult",
                "behavior_peasant"
              ]
            },
            "remove": {
              "component_groups": [
                "baby"
              ]
            }
          }
        ]
      },
      "minecraft:spawn_librarian": {
        "randomize": [
          {
            "weight": 20,
            "add": {
              "component_groups": [
                "librarian",
                "adult",
                "behavior_non_peasant"
              ]
            },
            "remove": {
              "component_groups": [
                "baby"
              ]
            }
          },
          {
            "weight": 20,
            "add": {
              "component_groups": [
                "cartographer",
                "behavior_non_peasant"
              ]
            },
            "remove": {
              "component_groups": [
                "baby"
              ]
            }
          }
        ]
      },
      "minecraft:spawn_cleric": {
        "add": {
          "component_groups": [
            "cleric",
            "adult",
            "behavior_non_peasant"
          ]
        },
        "remove": {
          "component_groups": [
            "baby"
          ]
        }
      },
      "minecraft:spawn_armorer": {
        "randomize": [
          {
            "weight": 6,
            "add": {
              "component_groups": [
                "armorer",
                "adult",
                "behavior_non_peasant"
              ]
            },
            "remove": {
              "component_groups": [
                "baby"
              ]
            }
          },
          {
            "weight": 6,
            "add": {
              "component_groups": [
                "weaponsmith",
                "adult",
                "behavior_non_peasant"
              ]
            },
            "remove": {
              "component_groups": [
                "baby"
              ]
            }
          },
          {
            "weight": 6,
            "add": {
              "component_groups": [
                "toolsmith",
                "adult",
                "behavior_non_peasant"
              ]
            },
            "remove": {
              "component_groups": [
                "baby"
              ]
            }
          }
        ]
      },
      "minecraft:spawn_butcher": {
        "randomize": [
          {
            "weight": 10,
            "add": {
              "component_groups": [
                "butcher",
                "adult",
                "behavior_non_peasant"
              ]
            },
            "remove": {
              "component_groups": [
                "baby"
              ]
            }
          },
          {
            "weight": 10,
            "add": {
              "component_groups": [
                "leatherworker",
                "adult",
                "behavior_non_peasant"
              ]
            },
            "remove": {
              "component_groups": [
                "baby"
              ]
            }
          }
        ]
      },
      "minecraft:ageable_grow_up": {
        "sequence": [
          {
            "remove": {
              "component_groups": [
                "baby"
              ]
            },
            "add": {
              "component_groups": [
                "adult"
              ]
            }
          }
        ]
      },
      "minecraft:become_cleric": {
        "add": {
          "component_groups": [
            "cleric",
            "adult",
            "behavior_non_peasant"
          ]
        },
        "remove": {
          "component_groups": [
            "baby"
          ]
        }
      },
      "on:death": {
        "run_command": {
          "command": []
        }
      },
      "on:hurt": {
        "run_command": {
          "command": []
        }
      },
      "on:hurt_by_player": {
        "run_command": {
          "command": []
        }
      },
      "on:ignite": {
        "run_command": {
          "command": []
        }
      },
      "on:target_acquired": {
        "run_command": {
          "command": []
        }
      },
      "on:target_escape": {
        "run_command": {
          "command": []
        }
      },
      "on:wake_with_owner": {
        "run_command": {
          "command": []
        }
      }
    }
  }
}