{
    "@meta": {
        "expand_path_exceptions": [ "minecraft:spawns_on_surface", "minecraft:spawns_underwater" ]
    },

    "minecraft:spawns_on_surface": {},
    "minecraft:spawns_underground": {},
    "minecraft:spawns_underwater": {},
    "minecraft:spawns_on_block_filter": {
        "$dynamic.list.next_index": "$general.block_identifier"
    },
    "minecraft:spawns_on_block_prevented_filter": {
        "$dynamic.list.next_index": "$general.block_identifier"
    },

    "minecraft:brightness_filter": {
        "min": "$general.number",
        "max": "$general.number",
        "adjust_for_weather": "$general.boolean"
    },
    
    "minecraft:difficulty_filter": {
        "min": "$general.game_difficulty",
        "max": "$general.game_difficulty"
    },

    "minecraft:weight": {
        "default": "$general.number"
    },

    "minecraft:herd": {
        "min_size": "$general.number",
        "max_size": "$general.number",
        "event_skip_count": "$general.number",
        "event": {
            "@meta": { "is_value": true },
            "@import.value.entity_event": "$dynamic.cache.entity.events"
        },
        "initial_event_count": "$general.number",
        "initial_event": {
            "@meta": { "is_value": true },
            "@import.value.entity_event": "$dynamic.cache.entity.events"
        }
    },
    "minecraft:density_limit": {
        "surface": "$general.number",
        "underground": "$general.number"
    },

    "minecraft:biome_filter": {
        "all_of": {
            "$dynamic.list.next_index": "$spawn_rule.components.minecraft:biome_filter"
        },
        "any_of": {
            "$dynamic.list.next_index": "$spawn_rule.components.minecraft:biome_filter"
        },
        "test": [ "has_biome_tag" ],
        "operator": "$entity.general.filter_operators",
        "value": "$general.biome_tag and $dynamic.cache.biome.tags"
    },
    "minecraft:player_in_village_filter": {
      "distance": "$general.number",
      "village_border_tolerance": "$general.number"
    },
    
    "minecraft:delay_filter": {
        "min": "$general.number",
        "max": "$general.number",
        "identifier": "$general.entity_identifier",
        "spawn_chance": "$general.number"
    },
    "minecraft:distance_filter": {
        "min": "$general.number",
        "max": "$general.number"
    },

    "minecraft:height_filter":{
        "min": "$general.number",
        "max": "$general.number"
    },

    "minecraft:permute_type": {
        "$dynamic.list.next_index": {
            "weight": "$general.number",
            "entity_type": "$general.entity_type"
        }
    },
    "minecraft:world_age_filter": {
        "min": "$general.number",
        "max": "$general.number"
    }
}