{
  "format_version": "1.13.0",
  "minecraft:tree_feature": {
    "description": {
      "identifier": "minecraft:mangrove_tree_feature"
    },
    "mangrove_roots": {
      "max_root_width": 8,
      "max_root_length": 15,
      "y_offset": {
        "range_min": 1,
        "range_max": 4
      },
      "root_block": {
        "name": "minecraft:mangrove_roots"
      },
      "muddy_root_block": {
        "name": "minecraft:muddy_mangrove_roots"
      },
      "mud_block": {
        "name": "minecraft:mud"
      },
      "above_root": {
        "above_root_block": "minecraft:moss_carpet",
        "above_root_chance": {
          "numerator": 1,
          "denominator": 2
        }
      },
      "roots_may_grow_through": [
        "minecraft:air",
        "minecraft:snow_layer",
        // Root blocks
        "minecraft:mud",
        "minecraft:mangrove_roots",
        "minecraft:muddy_mangrove_roots",
        // Water
        "minecraft:water",
        "minecraft:flowing_water",
        // Blocks used to decorate the tree
        "minecraft:vine",
        "minecraft:moss_carpet",
        "minecraft:mangrove_propagule"
      ]
    },
    "mangrove_trunk": {
      "trunk_width": 1,
      "trunk_height": {
        "base": 2,
        "height_rand_a": 1,
        "height_rand_b": 4
      },
      "trunk_block": {
        "name": "minecraft:mangrove_log"
      },
      "branches": {
        "branch_chance": 100.0,
        "branch_length": {
          "range_min": 0,
          "range_max": 1
        },
        "branch_steps": {
          "range_min": 1,
          "range_max": 4
        }
      }
    },
    "mangrove_canopy": {
      "canopy_height": 2,
      "canopy_radius": 3,
      "leaf_placement_attempts": 70,
      "leaf_blocks": [
        [ "minecraft:mangrove_leaves", 1 ]
      ],
      "canopy_decoration": {
        "decoration_block": "minecraft:vine",
        "decoration_chance": {
          "numerator": 1,
          "denominator": 4
        },
        "num_steps": 4,
        "step_direction": "down"
      },
      "hanging_block": {
        "name": "minecraft:mangrove_propagule",
        "states": {
          "hanging": true
        }
      },
      "hanging_block_placement_chance": {
        "numerator": 1,
        "denominator": 4
      }
    },
    // Blocks the tree can be placed on.
    "may_grow_on": [
      { "tags": "query.any_tag('dirt')" },
      "minecraft:clay"
    ],
    // Any "may_grow_on" block that is not specified here will be replaced with the first block in this list.
    "base_block": [
      "minecraft:mud"
    ],
    // 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')" },
      "minecraft:clay"
    ],
    // 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",
      // Water
      "minecraft:water",
      "minecraft:flowing_water",
      // Blocks used to decorate the tree
      "minecraft:vine",
      "minecraft:moss_carpet",
      "minecraft:mangrove_propagule"
    ]
  }
}
