Custom world generation/configured feature


 * The root tag
 * The type of configured feature. Must be one of the types listed below.
 * The settings for this configured feature. The settings vary depending on . Any name not listed under this tag has no settings; however, they must still include an empty   object in their definition.
 * If  is  :
 * The block to use for the trunk. Note that provider block must be blocks with xyz axis tag, like logs, when the trunk placer is
 * Blockstate Provider
 * The block to use for the leaves.
 * Blockstate Provider
 * Controls how leaves are generated.
 * Uniform Int with  0,   8, and   8
 * Uniform Int with  0,   8, and   8
 * The type of foliage placer to use. Must be one of,  ,  ,  ,  ,  ,  ,  , or.
 * If  is ,  ,  , or  :
 * Affect the foliage height and size in block height. Must be between 0 and 16, inclusive.
 * If  is  :
 * Uniform Int with  0,   16, and   8
 * If  is  :
 * Uniform Int with  0,   16, and   8
 * If  is  :
 * Uniform Int with  0,   16, and   8
 * Controls how the trunk is generated.
 * The type of trunk placer to use. Must be one of,  ,  ,  ,  , or.
 * Must be between 0 and 32, inclusive.
 * Must be between 0 and 24, inclusive.
 * Must be between 0 and 24, inclusive.
 * (optional): Must be between 0 and 80, inclusive.
 * Must be either  or.
 * If  is  :
 * (optional): Must be between 0 and 81, inclusive. Defaults to 1 if not provided.
 * (optional): Must be between 0 and 16, inclusive. Defaults to 0 if not provided.
 * (optional): Must be between 0 and 16, inclusive. Defaults to 1 if not provided.
 * If  is  :
 * (optional): Must be between 0 and 80, inclusive. Defaults to 1 if not provided.
 * (optional): Must be between 0 and 80, inclusive. Defaults to 1 if not provided.
 * (optional): Must be between 0 and 16, inclusive. Defaults to 0 if not provided.
 * (optional): Must be between 0 and 16, inclusive. Defaults to 1 if not provided.
 * (optional): Must be between 0 and 16, inclusive. Defaults to 1 if not provided.
 * Decorations to add to the tree apart from the trunk and leaves.
 * A decorator.
 * The type of decoration to add. Must be one of,  ,  ,  , or.
 * If  is   or  :
 * Must be between 0 and 1, inclusive.
 * If  is  :
 * The block to replace the ground with.
 * Blockstate Provider
 * (optional): The maximum depth of water this tree can generate in. Defaults to 0 if not provided.
 * (optional): Defaults to false if not provided.
 * Must be one of,  ,  ,  ,  , or.
 * If  is   or  :
 * The block to use.
 * Blockstate Provider
 * The type of block placer to use. Must be one of,  , or.
 * If  is  :
 * A block state
 * The namespaced id of the block to use.
 * Block states
 * A block state key and its value.
 * A block state
 * The namespaced id of the block to use.
 * Block states
 * A block state key and its value.
 * (optional): Defaults to 128 if not provided.
 * (optional): Defaults to 7 if not provided.
 * (optional): Defaults to 3 if not provided.
 * (optional): Defaults to 7 if not provided.
 * (optional): Defaults to false if not provided.
 * (optional): Defaults to true if not provided.
 * (optional): Defaults to false if not provided.
 * If  is   or  :
 * The block to use.
 * Blockstate Provider
 * If  is  :
 * The fluid to use for the spring.
 * The namespaced id of the fluid to use.
 * Fluid states
 * A fluid state key and its value.
 * (optional): Defaults to true if not provided.
 * (optional): Defaults to 4 if not provided.
 * (optional): Defaults to 1 if not provided.
 * A list of blocks.
 * The namespaced id of the block to use.
 * If  is  :
 * A block state
 * The namespaced id of the block to use.
 * Block states
 * A block state key and its value.
 * A block state
 * The namespaced id of the block to use.
 * Block states
 * A block state key and its value.
 * If  is   or  :
 * The block to use for the cap.
 * Blockstate Provider
 * The block to use for the stem.
 * Blockstate Provider
 * (optional): The size of the cap. Defaults to 2 if not provided.
 * If  is ,  , or  :
 * A block state
 * The namespaced id of the block to use.
 * If  is   or  :
 * A block state
 * The namespaced id of the block to use.
 * Uniform Int with  0,   4, and   4
 * Must be between 0 and 4, inclusive.
 * A block state
 * The namespaced id of the block to use.
 * Block states
 * A block state key and its value.
 * If  is   or  :
 * Test for if a block can be replaced
 * The test to perform. Must be one of,  ,  ,  ,  , or
 * If  is  :
 * The namespaced id of the block to match.
 * If  is  :
 * The block state to match.
 * The namespaced id of the block to use.
 * Block states
 * A block state key and its value.
 * If  is  :
 * The namespaced id of the block tag to match.
 * If  is  :
 * The namespaced id of the block to match.
 * A number on the interval [0, 1] giving the probability of the vein 'growing' after seeding. Lower values correspond to smaller veins on average.
 * If  is  :
 * The block state to match.
 * The namespaced id of the block to use.
 * Block states
 * A block state key and its value.
 * The block state to use for the ore.
 * The namespaced id of the block to use.
 * Block states
 * A block state key and its value.
 * The size of the vein. Must be between 0 and 64, inclusive.
 * If  is  :
 * (optional): Defaults to false if not provided.
 * Settings for each individual spike.
 * A spike
 * (optional): Defaults to 0 if not provided.
 * (optional): Defaults to 0 if not provided.
 * (optional): The radius of the spike. Defaults to 0 if not provided.
 * (optional): The height of the spike. Defaults to 0 if not provided.
 * (optional): Whether or not to generate a cage around the crystal. Defaults to false if not provided.
 * (optional): The position of a block.
 * The position's x coordinate.
 * The position's y coordinate.
 * The position's z coordinate.
 * If  is  :
 * (optional): The position where the gateway portal should exit.
 * The position's x coordinate.
 * The position's y coordinate.
 * The position's z coordinate.
 * If  is   or  :
 * Decimal probability between 0 and 1.
 * If  is  :
 * Uniform Int with  -10,   128, and   128
 * If  is  :
 * The block to place.
 * The namespaced id of the block to use.
 * Block states
 * A block state key and its value.
 * Blocks to place on top of.
 * The block state to match.
 * The namespaced id of the block to use.
 * Block states
 * A block state key and its value.
 * Blocks to replace.
 * The block state to match.
 * The namespaced id of the block to use.
 * Block states
 * A block state key and its value.
 * Blocks to place under.
 * The block state to match.
 * The namespaced id of the block to use.
 * Block states
 * A block state key and its value.
 * If  is  :
 * The block to place on top of.
 * The namespaced id of the block to use.
 * Block states
 * A block state key and its value.
 * The block to use for the stem.
 * The namespaced id of the block to use.
 * Block states
 * A block state key and its value.
 * The block to use for the hat.
 * The namespaced id of the block to use.
 * Block states
 * A block state key and its value.
 * The block to use for the decor.
 * The namespaced id of the block to use.
 * Block states
 * A block state key and its value.
 * (optional): Defaults to false if not provided.
 * If  is  :
 * Uniform Int with  0,   2, and   1
 * Uniform Int with  1,   5, and   5
 * If  is  :
 * The block to use for the delta.
 * The namespaced id of the block to use.
 * Block states
 * A block state key and its value.
 * The block to use for the rim of the delta.
 * The namespaced id of the block to use.
 * Block states
 * A block state key and its value.
 * The size of the delta.
 * Uniform Int with  0,   8, and   8
 * The size of the rim of the delta.
 * Uniform Int with  0,   8, and   8
 * If  is  :
 * A block state
 * The namespaced id of the block to use.
 * Block states
 * A block state key and its value.
 * A block state
 * The namespaced id of the block to use.
 * Block states
 * A block state key and its value.
 * Uniform Int
 * If  is  :
 * The layer to fill.
 * The block to fill with.
 * A block state
 * The namespaced id of the block to use.
 * Block states
 * A block state key and its value.
 * If  is  :
 * A list of other features to be randomly chosen from.
 * A feature and its corresponding chance
 * Another configured feature.
 * The chance of this feature being chosen.
 * The configured feature to use if none of the above features are chosen.
 * If  is  :
 * A list of other features to be randomly chosen from, each with equal chance.
 * Another configured feature.
 * If  is  :
 * The configured feature to select if the randomly generated boolean is true.
 * The configured feature to select if the randomly generated boolean is true.
 * If  is  :
 * The configured feature to use.
 * The configured decorator to modify the feature with.
 * A block state key and its value.
 * Uniform Int
 * If  is  :
 * The layer to fill.
 * The block to fill with.
 * A block state
 * The namespaced id of the block to use.
 * Block states
 * A block state key and its value.
 * If  is  :
 * A list of other features to be randomly chosen from.
 * A feature and its corresponding chance
 * Another configured feature.
 * The chance of this feature being chosen.
 * The configured feature to use if none of the above features are chosen.
 * If  is  :
 * A list of other features to be randomly chosen from, each with equal chance.
 * Another configured feature.
 * If  is  :
 * The configured feature to select if the randomly generated boolean is true.
 * The configured feature to select if the randomly generated boolean is true.
 * If  is  :
 * The configured feature to use.
 * The configured decorator to modify the feature with.
 * The configured decorator to modify the feature with.