{
  "minecraft:entity": {
    "format_version": "1.2.0",

    "component_groups": {
      "minecraft:golem_leashed": {
        "minecraft:behavior.move_towards_restriction": {
          "priority": 2,
          "speed_multiplier": 1.0
        }
      },
      "minecraft:player_created": {
        "minecraft:behavior.hurt_by_target": {
          "priority": 2,
          "entity_types": {
            "filters": { 
                "all_of": [
                  { "test" :  "is_family", "subject" : "other", "operator": "!=", "value" :  "player"},
                  { "test" :  "is_family", "subject" : "other", "operator": "!=", "value" :  "creeper"}
                ] 
            }
          }
        }
      },
      "minecraft:village_created": {
        "minecraft:behavior.defend_village_target": {
          "priority": 1
        }
      }
    },

    "components": {
      "minecraft:identifier": {
        "id": "minecraft:iron_golem"
      },
      "minecraft:type_family": {
        "family": [ "irongolem" ]
      },
      "minecraft:nameable": {
      },
      "minecraft:collision_box": {
        "width": 1.4,
        "height": 2.9
      },
      "minecraft:loot": {
        "table": "loot_tables/entities/iron_golem.json"
      },
      "minecraft:health": {
        "value": 100,
        "max": 100
      },
      "minecraft:movement": {
        "value": 0.25
      },
      "minecraft:navigation.walk": {
        "can_path_over_water": false,
        "avoid_water": true,
        "avoid_damage_blocks": true
      },
      "minecraft:movement.basic": {
        
      },
      "minecraft:jump.static": {
      },
      "minecraft:can_climb": {
      },
      "minecraft:attack": {
        "damage": {
          "range_min": 7,
          "range_max": 21
        }
      },
      "minecraft:fall_damage": {
        "value": 0.0
      },
      "minecraft:knockback_resistance": {
        "value": 1.0
      },
      "minecraft:leashable": {
        "soft_distance": 4.0,
        "hard_distance": 6.0,
        "max_distance": 10.0,
        "on_leash": {
          "event": "minecraft:on_leash",
          "target": "self"
        },
        "on_unleash": {
          "event": "minecraft:on_unleash",
          "target": "self"
        }
      },
      "minecraft:balloonable": {
      },
      "minecraft:behavior.melee_attack": {
        "priority": 1,
        "target_dist": 1.0,
        "track_target": true
      },
      "minecraft:behavior.move_towards_target": {
        "priority": 2,
        "speed_multiplier": 0.9,
        "within_radius": 32
      },
      "minecraft:behavior.move_through_village": {
        "priority": 3,
        "speed_multiplier": 0.6,
        "only_at_night": true
      },
      "minecraft:behavior.move_towards_restriction": {
        "priority": 4,
        "speed_multiplier": 1
      },
      "minecraft:behavior.offer_flower": {
        "priority": 5
      },
      "minecraft:behavior.random_stroll": {
        "priority": 6,
        "speed_multiplier": 1,
        "xz_dist": 16
      },
      "minecraft:behavior.look_at_player": {
        "priority": 7,
        "look_distance": 6.0,
        "probability": 0.02
      },
      "minecraft:behavior.random_look_around": {
        "priority": 8
      },
      "minecraft:behavior.nearest_attackable_target": {
        "priority": 3,
        "entity_types": [
          {
            "filters": { 
                "all_of": [
                  { "test" :  "is_family", "subject" : "other", "value" :  "monster"},
                  { "test" :  "is_family", "subject" : "other", "operator": "!=", "value" :  "creeper"}
                ] 
            },
            "within_default": 10
          }
        ],
        "must_see": true,
        "must_reach": true
      },
      "minecraft:behavior.hurt_by_target": {
        "priority": 2,
        "entity_types": {
          "filters": { "test": "is_family", "subject": "other", "operator": "!=", "value": "creeper" }
        }
      },
      "minecraft:physics": {
      }
    },

    "events": {
      "minecraft:from_player": {
        "add": {
          "component_groups": [
            "minecraft:player_created"
          ]
        }
      },
      "minecraft:from_village": {
        "add": {
          "component_groups": [
            "minecraft:village_created"
          ]
        }
      },
      "minecraft:on_leash": {
        "add": {
          "component_groups": [
            "minecraft:golem_leashed"
          ]
        }
      },
      "minecraft:on_unleash": {
        "remove": {
          "component_groups": [
            "minecraft:golem_leashed"
          ]
        }
      }
    }
  }
}