{
  "format_version": "1.26.0",
  "minecraft:entity": {
    "description": {
      "identifier": "minecraft:ghast",
      "is_summonable": true,
      "is_spawnable": true,
      "spawn_category": "monster"
    },
    "components": {
      "minecraft:behavior.float": {
        "priority": 0
      },
      "minecraft:behavior.float_wander": {
        "float_duration": [
          2,
          7
        ],
        "float_wander_has_move_control": false,
        "random_reselect": true,
        "must_reach": true,
        "priority": 2
      },
      "minecraft:behavior.hurt_by_target": {
        "priority": 1
      },
      "minecraft:behavior.nearest_attackable_target": {
        "must_see": true,
        "entity_types": [
          {
            "filters": {
              "AND": [
                {
                  "test": "is_family",
                  "subject": 1,
                  "operator": 0,
                  "value": "player"
                }
              ]
            },
            "max_dist": 28
          }
        ],
        "priority": 2
      },
      "minecraft:behavior.ranged_attack": {
        "attack_radius": 64,
        "charge_charged_trigger": 1,
        "priority": 1,
        "charge_shoot_trigger": 2
      },
      "minecraft:breathable": {
        "suffocate_time": 0,
        "total_supply": 15
      },
      "minecraft:can_fly": {},
      "minecraft:cannot_be_attacked": {},
      "minecraft:collision_box": {
        "height": 4,
        // The extra 0.02 prevents the Ghast from spawning in areas where it would suffocate.
        "width": 4.02
      },
      "minecraft:conditional_bandwidth_optimization": {},
      "minecraft:damage_sensor": {
        "triggers": {
          "cause": "fall",
          "deals_damage": "no"
        }
      },
      "minecraft:despawn": {
        "despawn_from_distance": {}
      },
      "minecraft:experience_reward": {
        "on_death": {
          "expression": "query.last_hit_by_player ? 5 + (query.equipment_count * Math.Random(1,3)) : 0",
          "version": 12
        }
      },
      "minecraft:fire_immune": {},
      "minecraft:follow_range": {
        "max": 64,
        "value": 64
      },
      "minecraft:health": {
        "max": 10,
        "value": 10
      },
      "minecraft:is_hidden_when_invisible": {},
      "minecraft:jump.static": {},
      "minecraft:loot": {
        "table": "loot_tables/entities/ghast.json"
      },
      "minecraft:movement": {
        "value": 0.03
      },
      "minecraft:nameable": {},
      "minecraft:navigation.float": {
        "can_path_over_water": true,
        "using_door_annotation": true
      },
      "minecraft:physics": {},
      "minecraft:pushable": {
        "is_pushable": true,
        "is_pushable_by_piston": true
      },
      "minecraft:shooter": {
        "def": "minecraft:fireball"
      },
      "minecraft:type_family": {
        "family": [
          "ghast",
          "monster",
          "mob"
        ]
      }
    },
    "events": null
  }
}