{
  "format_version": "1.13.0",
  "minecraft:tree_feature": {
    "description": {
      "identifier": "minecraft:mega_pine_tree_feature"
    },
    "mega_trunk": {
      "trunk_width": 2,
      "trunk_height": {
        "base": 13,
        "intervals": [ 3, 15 ]
      },
      "trunk_block": {
        "name": "minecraft:spruce_log"
      }
    },
    "mega_pine_canopy": {
      "canopy_height": {
        "range_min": 3,
        "range_max": 8
      },
      "base_radius": 0,
      "radius_step_modifier": 3.5,
      "core_width": 2,
      "leaf_block": {
        "name": "minecraft:spruce_leaves"
      }
    },
    // Blocks the tree can be placed on.
    "may_grow_on": [
      { "tags": "query.any_tag('dirt')" }
    ],
    // Any "may_grow_on" block that is not specified here will be replaced with the first block in this list.
    "base_block": [
      "minecraft:podzol"
    ],
    // Blocks replaced with "base_block" at random positions around the tree.
    "base_cluster": {
      "may_replace": [
        { "tags": "query.any_tag('dirt')" }
      ],
      "num_clusters": 5,
      "cluster_radius": 2
    },
    // Blocks to ignore when checking for clearance around the tree. Already includes all blocks specified in "may_replace".
    "may_grow_through": [
      { "tags": "query.any_tag('dirt')" }
    ],
    // Blocks that can be replaced by the tree's trunk and canopy.
    "may_replace": [
      "minecraft:air",
      "minecraft:snow_layer",
      // All leaves
      "minecraft:acacia_leaves",
      "minecraft:azalea_leaves",
      "minecraft:azalea_leaves_flowered",
      "minecraft:birch_leaves",
      "minecraft:cherry_leaves",
      "minecraft:dark_oak_leaves",
      "minecraft:jungle_leaves",
      "minecraft:mangrove_leaves",
      "minecraft:oak_leaves",
      "minecraft:pale_oak_leaves",
      "minecraft:spruce_leaves",
      // Plants
      "minecraft:wildflowers",
      "minecraft:leaf_litter"
    ]
  }
}
