How does structure feature spawning work?

can someone help me understand how placing a feature using a jigsaw block work? I've got this jigsaw placing dripleaves via a feature but I'm finding it hard to control how features are placed.

So what I kinda understand is that the referenced template pool calls the placed_feature. This then finds a bunch of places that the configued_feature will attempt to be placed.

So in my example how I'm imagining the placed_feature working:

  • it creates 225 positions where the feature can be placed (where exactly would these be? At the block above the relevant jigsaw block?)
  • it then moves them randomly 4 blocks in the x and z axes and 15 blocks in the y axis resulting in 225 positions randomly spread across a 7x29x7 rectangle centred on the block above the jigsaw block.
  • These positions are now moved downward block by block up to 32 times and if they encounter a block with the "type" of "solid" they stop (stop on the block or directly above it?).
  • I'm guessing it then tries to place the configured feature on every one of the resulting positions

The configured feature I'm much less sure how it works.

  • im guessing each type kindof had differnt ways it works and you can configure it.
  • For vegetation_patch, what does depth, extra_bottom_block_chance and extra_edge_column_chance do?
  • The ground_state just changes the block directly below the feature to a specifc block?
  • replaceable is what can be replaced by the feature.
  • not really sure how "surface":"floor" comes into it since it's already on the floor
  • vegetation chance is the chance that vegetation will spawn on each block of the patch
  • vegetation feature is what is places
  • vertical range and xz radius, do these determine how far the patch can extend?

So as I undersatand there should be dripleaves basically everywhere in a 7x29x7 cube but there aren't.

Continue to help post