The only required properties of a Canopy object in a minecraft:tree_feature are the leaf_block and a canopy_offset object with "min" and "max" values that apparently can be float values. I would assume positive integers are intended, but positive, negative, float values, and any mixture thereof will cause Minecraft to immediately crash when loading.
Steps to reproduce:
Include the attached feature and feature_rule file in the "feature" and "feature rule" folders of a given behavior pack and proceed to any birch biome (ex: seed 499819143 and coordinates around -400, 90 -800).
What happens:
Minecraft begins to load and then abruptly crashes. (If you teleport you'll get the sky, paper doll, and coordinates before it does).
What I expect to happen:
Minecraft should generate a couple of weird looking trees throughout the Birch biome with grass trunks and a podzol canopy.
I want to comment that, through many hours of testing, debugging, and so on, the issue here is the lack of documentation (as seems to be the case with many of the creator tools, still).
To generate a 'traditional' canopy:
the canopy offset min should be max 0, and the min should be the inverse of how many layers you want plus one (for 5 layers, use -4, etc). the canopy will be built increasing in size every 2 layers. top two layers are 3x3, next two are 5x5, next two are 7x7, and so on.
There should be a "variation_chance" array consisting of a "numerator" and "denominator" pair for each layer (5 sets for 5 layers). The num/denom pairs count from the bottom of the canopy up. Larger percentages will result in square-shaped layers, and smaller percentages will result in cross-shaped layers.
This bug ticket can be marked closed.