Custom world generation/configured feature


 * : Root object.
 * : The ID of feature type.
 * : Configuration of this configured feature. The avialable properties vary depending on the . Types that are not listed below have no config, but must still have an empty object.


 * : The probability for a podzol disk to generate below the bamboo. The disk has a radius of 1 to 4 blocks. Value between 0.0 and 1.0 (inclusive).


 * : The max radius of a column in this column cluster. Value between 0 and 3 (inclusive).
 * : The max height is . Value between 1 and 10 (inclusive).
 * : The max height is . Value between 1 and 10 (inclusive).


 * : The direction of the column. One of,  ,  ,  ,  , or.
 * : A block predicate. The predicate must be passed to generate this feature.
 * : Determines where to cut off blocks when space is restricted. If, will start removing layers from the start of the column.
 * : (Required, but can be empty) The layers of this column.
 * : A layer.
 * : Specifying the height of the layer. Must be a non-negative int.
 * : The block to use for this layer.
 * : The block to use for this layer.
 * : The block to use for this layer.


 * : The block to use.


 * : The block to use on the inside of the delta.
 * : The block to use for the rim of the delta.
 * : The size of the inside of the delta. Value between 0 and 16 (inclusive).
 * : The size of the rim of the delta. Value between 0 and 16 (inclusive).
 * : The size of the inside of the delta. Value between 0 and 16 (inclusive).
 * : The size of the rim of the delta. Value between 0 and 16 (inclusive).
 * : The size of the rim of the delta. Value between 0 and 16 (inclusive).


 * : The block to use.
 * ：The block to use when all the rules' predicates are not passed.
 * : (Reqired, but can be empty) Rules of the block to use.
 * : One rule.
 * : The predicate of this rule.
 * : The block to use when the predicate is passed.
 * : The radius of this disk. Value between 0 and 8 (inclusive).
 * : Half of the height of this disk. Value between 0 and 8 (inclusive).
 * : This predicate must be passed to generate this feature.
 * : The radius of this disk. Value between 0 and 8 (inclusive).
 * : Half of the height of this disk. Value between 0 and 8 (inclusive).
 * : This predicate must be passed to generate this feature.
 * : This predicate must be passed to generate this feature.


 * : For how many blocks the feature will search for the floor or ceiling. Value between 1 and 512 (inclusive).
 * : The height of the cluster. Value between 1 and 128 (inclusive).
 * : The radius of the cluster. Value between 1 and 128 (inclusive).
 * : The maximum height difference between stalagmites and stalactites. Value between 0 and 64 (inclusive).
 * : The height deviation. Value between 1 and 64 (inclusive).
 * : The dripstone block layer's thickness. Value between 0 and 128 (inclusive).
 * : Value between 0.0 and 2.0 (inclusive).
 * : Value between 0.0 and 2.0 (inclusive).
 * : Value between 0.0 and 1.0 (inclusive).
 * : Value between 1 and 64 (inclusive).
 * : Value between 1 and 64 (inclusive).
 * : Value between 0.0 and 2.0 (inclusive).
 * : Value between 0.0 and 1.0 (inclusive).
 * : Value between 1 and 64 (inclusive).
 * : Value between 1 and 64 (inclusive).
 * : Value between 1 and 64 (inclusive).


 * : Whether the gateway should teleport entities in the exact exit position.
 * : (optional) The block position where the gateway should exit.
 * : X coordinate.
 * : Y coordinate.
 * : Z coordinate.


 * : (optional, defaults to false) Whether the end crystals on it are invulnerable.
 * : (optional) Block position of the beam target.
 * : The X coordinate.
 * : The Y coordinate.
 * : The Z coordinate.
 * : (Required, but can be empty. If empty, uses the default random spikes) Configurations of each spike.
 * : A spike.
 * : (optional, defaults to 0) The X coordinate.
 * : (optional, defaults to 0) The Z coordinate.
 * : (optional, defaults to 0) The radius of the spike.
 * : (optional, defaults to 0) The height of the spike.
 * : (optional, defaults to false) Whether to generate an iron bar cage around the crystal.


 * : The block to fill with.
 * : The layer to fill, starting at the bottom of the world. Value between 0 and 4064 (inclusive).
 * : The layer to fill, starting at the bottom of the world. Value between 0 and 4064 (inclusive).


 * : (optional, defaults to 128) The number of attempts to generate. Must be a positive integer.
 * : (optional, defaults to 7) The horizontal spread range. Must be a non-negative integer.
 * : (optional, defaults to 3) the vertical spread range. Must be a non-negative integer.
 * : Can be a placed feature ID, or a placed feature object. The placed feature that the this patch generates.


 * : The block to use.


 * : (Cannot be empty) A list of fossil structure templates to choose from.
 * : An ID of fossil structure template.
 * : (Cannot be empty) A list of overlay structure templates to choose from.
 * : An ID of overlay structure template.
 * : Can be the ID of a processor list, or a list of processors, or a object of processor list. A processor for fossil structure templates.
 * : Can be the ID of a processor list, or a list of processors, or a object of processor list. A processor for overlay structure templates.
 * : How many corners of the structure are allowed to be empty for it to generate. Prevents structures floating in the air.


 * : The blocks to use.
 * : The block used for filling.
 * : The block of the inner layer.
 * : The alternate block of the inner layer.
 * : The block of the middle layer.
 * : The block of the outer layer.
 * : (Cannot be empty) The blocks to place in the geode.
 * A block state.
 * : A block tag with  listing which blocks not to replace.
 * : A block tag with  listing invalid blocks. Due to a bug, any value is treated as  . Additionally, air is an invalid block.
 * : The max radius of each layer. Higher value results in higher max radius of each layer.
 * : (optional, defaults to 1.7) Value between 0.01 and 50 (inclusive).
 * : (optional, defaults to 2.2) Value between 0.01 and 50 (inclusive).
 * : (optional, defaults to 3.2) Value between 0.01 and 50 (inclusive).
 * : (optional, defaults to 4.2) Value between 0.01 and 50 (inclusive).
 * : The configuration of the crack on the geode.
 * : (optional, defaults to 1.0) The probability for generating crack. Value between 0.0 and 1.0 (inclusive).
 * : (optional, efaults to 2) Value between 0.0 and 5.0 (inclusive).
 * : (optional,defaults to 2) Value between 0 and 10 (inclusive).
 * : (optional, defaults to 0.05) Value between 0.0 and 1.0 (inclusive).
 * : (optional, defaults to 0.35) The probability for placing the inner placement on a block of inner layer. Value between 0 and 1 (inclusive).
 * : (optional, defaults to 0.0) The probability of the alternate blocks on inner layer. Value between 0 and 1 (inclusive).
 * : (optional, defaults to true) Whether the inner placements are only allowed on the alternate inner blocks.
 * : (optional, defaults to a uniform int between 4 and 5) The offset on each coordinate of the center from the feature start. Value between 1 and 20 (inclusive).
 * : (optional, defaults to a uniform int between 3 and 4) Value between 1 and 20 (inclusive).
 * : Check times near the center of the geode, and if the number of invalid blocks found exceeds this number, the feature will not be generated.
 * : (optional, defaults to a uniform int between 1 and 2) Value between 1 and 10.
 * : (optional, defaults to -16) The minimum Chebyshev distance between the block and the center.
 * : (optional, defaults to 16) The maximum Chebyshev distance between the block and the center.
 * : (optional, defaults to a uniform int between 4 and 5) The offset on each coordinate of the center from the feature start. Value between 1 and 20 (inclusive).
 * : (optional, defaults to a uniform int between 3 and 4) Value between 1 and 20 (inclusive).
 * : Check times near the center of the geode, and if the number of invalid blocks found exceeds this number, the feature will not be generated.
 * : (optional, defaults to a uniform int between 1 and 2) Value between 1 and 10.
 * : (optional, defaults to -16) The minimum Chebyshev distance between the block and the center.
 * : (optional, defaults to 16) The maximum Chebyshev distance between the block and the center.
 * : (optional, defaults to -16) The minimum Chebyshev distance between the block and the center.
 * : (optional, defaults to 16) The maximum Chebyshev distance between the block and the center.
 * : (optional, defaults to 16) The maximum Chebyshev distance between the block and the center.


 * : The block to use for the cap.
 * : The block to use for the stem.
 * : (optional，defaults to 2) The size of the cap.
 * : (optional，defaults to 2) The size of the cap.
 * : (optional，defaults to 2) The size of the cap.


 * : The block to use for the hat.
 * : The block to use as decoration.
 * : The block to use for the stem.
 * : The block to place this feature on.
 * : (optional, defaults to false) Whether this huge fungus is planted. If false, it can't exceed the world ceiling, can replace blocks whose material is PLANT, and doesn't drop items when replace other blocks.
 * : A block predicate. The predicate must be passed to be replaced with this feature.
 * : The block to place this feature on.
 * : (optional, defaults to false) Whether this huge fungus is planted. If false, it can't exceed the world ceiling, can replace blocks whose material is PLANT, and doesn't drop items when replace other blocks.
 * : A block predicate. The predicate must be passed to be replaced with this feature.
 * : A block predicate. The predicate must be passed to be replaced with this feature.


 * : The block to use.


 * : The block to use for the fluid of the lake.
 * : The block to use for the barrier of the lake.
 * : The block to use for the barrier of the lake.


 * : (optional, defaults to 30) The search range form start point to cave floor or ceiling (rather than from floor to ceiling). Value between 1 and 512 (inclusive).
 * : Used to provider a min and max value for radius. Note that this int provider doesn't provider a single int, but provider the min and max value of the specified distribution. Value between 1 and 60 (inclusive). See the graph for details.
 * : Higher value leads to higher height. Value between 0.0 and 20.0 (inclusive).
 * : The ratio of the max radius to the height of the cave. Value between 0.0 and 1.0 (inclusive).
 * : Trancate the tip of stalactite. Higher value leads to lower height. Value between 0.1 and 10.0 (inclusive).
 * : Trancate the tip of stalagmite. Higher value leads to lower height. Value between 0.1 and 10.0 (inclusive).
 * : Larger value results in larger inclination. Value between 0.0 and 2.0 (inclusive).
 * : The min column radius to used the wind. Value between 0 and 100.
 * : The min value of the bluntnesses to used the wind. Value between 0.0 and 5.0 (inclusive).
 * : Larger value results in larger inclination. Value between 0.0 and 2.0 (inclusive).
 * : The min column radius to used the wind. Value between 0 and 100.
 * : The min value of the bluntnesses to used the wind. Value between 0.0 and 5.0 (inclusive).
 * : The min column radius to used the wind. Value between 0 and 100.
 * : The min value of the bluntnesses to used the wind. Value between 0.0 and 5.0 (inclusive).


 * : (optional, defaults to ) The block to place, currently must be or.
 * : (optional, defaults to 10) Value between 1 and 64 (inclusive).
 * : (optional, defaults to 0.5) Value between 0.0 and 1.0 (inclusive).
 * : (optional, defaults to false).
 * : (optional, defaults to false).
 * : (optional, defaults to false).
 * : Can be a block ID or a block tag, or a list of block IDs.


 * : The block to use.
 * : The horizonal distance to spread to. The max width is . Must be a positive integer.
 * : The vertical distance to spread. The max height is . Must be a positive integer.
 * : The vertical distance to spread. The max height is . Must be a positive integer.


 * : The block to use.
 * : The block to replace.
 * : Value between 0 and 12 (inclusive).
 * : Value between 0 and 12 (inclusive).
 * : Value between 0 and 12 (inclusive).


 * : Value between 0 and 64 (inclusive). Determine the volume size of the ore.
 * : Value between 0 and 1 (inclusive). The chance for an ore block to be discarded when it is exposed to air. Setting this to 1 makes the ore completely hidden.
 * : (Required, but can be empty) A list of targets.
 * : A target.
 * : Rule test. The blocks to replace.
 * : The block to use.
 * : The block to use.


 * : (optional, defaults to 0.2) Value between 0.0 and 1.0 (inclusive). Probability for double-block dripstone.
 * : (optional, defaults to 0.7) Value between 0.0 and 1.0 (inclusive). Probability that the dripstone spreads in a horizontal direction.
 * : (optional, defaults to 0.5) Value between 0.0 and 1.0 (inclusive). Probability of horizontal spread by two blocks.
 * : (optional. defaults to 0.5) Value between 0.0 and 1.0 (inclusive). After the spread by two blocks, probability of spreading the third block.


 * : One placed feature. Can be an ID of a placed feature, or a placed feature object.
 * : Another placed feature. Can be an ID of a placed feature, or a placed feature object.


 * : (Required, but can be empty) A list of placed features from which to randomly choose. Try in order from the first, generate the placed feature or try the next one according to the chance.
 * A feature and its corresponding chance.
 * : The placed feature to use. Can be an ID of a placed feature, or a placed feature object.
 * : The chance of this feature being chosen.
 * : The placed feature to use if none of the above features are chosen. Can be an ID of a placed feature, or a placed feature object.


 * : (Required, but can be empty) A list of targets.
 * : A target.
 * : Rule test. The blocks to replace.
 * : The block to use.
 * : The block to use.


 * : Value between 1 and 64 (inclusive).
 * : Value between 1 and 64 (inclusive).
 * : Value between 1 and 256 (inclusive).
 * : Value between 1 and 4096 (inclusive).
 * : Value between 1 and 64 (inclusive).
 * : Value between 0 and 16 (inclusive).
 * : Value between 1 and 256 (inclusive).
 * : Value between 1 and 64 (inclusive).
 * : A block tag with  specifying which blocks can be replaced by the root column.
 * : The block to use for the root column.
 * : The block to use hanging below the root column.
 * : The block predicate used to check if the tree position is valid.
 * : The placed feature to place on top of the root system. Can be an ID of a placed feature, or a placed feature object.
 * : The block predicate used to check if the tree position is valid.
 * : The placed feature to place on top of the root system. Can be an ID of a placed feature, or a placed feature object.
 * : The placed feature to place on top of the root system. Can be an ID of a placed feature, or a placed feature object.


 * : The number of charges. Value between 1 and 32 (inclusive).
 * : The initial value of each charge. Value between 1 and 500 (inclusive).
 * : The number of attempts to spread. Value between 1 and 64 (inclusive).
 * : The number of times to generate. Value between 0 and 8 (inclusive).
 * : The number of times to spread. Value between 0 and 8 (inclusive).
 * : The number of extra shriekers generated.
 * : The probability of generating a catalyst. Value between 0.0 and 1.0 (inclusive).
 * : The probability of generating a catalyst. Value between 0.0 and 1.0 (inclusive).


 * : Value between 0 and 256 (inclusive). The max count of the sea pickle block (not single sea pickle).


 * : Value between 0.0 and 1.0 (inclusive). Probability of using tall seagrass instead of seagrass


 * : The block to use.


 * : (Cannot be an empty list) Features to choose from. Can be an ID or a tag of a placed feature, or a object of a placed feature, or a list of placed feature IDs, or a list of placed feature objects.


 * : The fluid to use.
 * : (optional, defaults to 4) The required number of blocks adjacent to the spring that belong to.
 * : (optional, defaults to 1) The required number of air blocks adjacent to the spring.
 * : (optional, defaults to true) Whether the spring feature requires a block in below the fluid.
 * : Can be a block ID or a block tag, or a list of block IDs.
 * : Can be a block ID or a block tag, or a list of block IDs.


 * (optional, defaults to false) Allows the tree to generate even if there are vines blocking it.
 * : (optional, defaults to false) If true, will place the dirt provider even when the block below the tree is a valid dirt-like block.
 * : The block to place below the trunk. Only places if  is true, or if there is not a valid dirt-like block below the trunk.
 * : The block to use for the trunk. Note that when the trunk placer is, the block must have   property, such as logs.
 * : The block to use for the foliage.
 * : Defines the width of the tree at different heights relative to the lowest trunk block, for the minimum size of the feature.
 * : (optional) Value between 0 and 80 (inclusive). If the possible height at this location is lower than trunk height, but greater or equal to this value, the tree will generate anyway. If not specified, the tree won't generate as long as the possible height is lower than trunk height. If the possible height at this location is lower than this value, the tree cannot generate.
 * : One of  or
 * If  is , additional fields are as follows :
 * : (optional, defaults to 1) Value between 0 and 81 (inclusive). At heights lower than this value,  is used, otherwise.
 * : (optional, defaults to 0) Value between 0 and 16 (inclusive). Minimum width of the tree at heights under.
 * : (optional, defaults to 1) Value between 0 and 16 (inclusive). Minimum width of the tree at heights greater than or equals.
 * If  is , additional fields are as follows :
 * : (optional, defaults to 1) Value between 0 and 80 (inclusive). At heights lower than this value,  is used, otherwise   or.
 * : (optional, defaults to 1) Value between 0 and 80 (inclusive). At heights between this and,   is used. If the height is greater or equals, it will use.
 * : (optional. defaults to 0) Value between 0 and 16 (inclusive). Minimum width of the tree at the lowest layer.
 * : (optional, defaults to 1) Value between 0 and 16 (inclusive). Minimum width of the tree at the middle layer.
 * : (optional, defaults to 1) Value between 0 and 16 (inclusive). Minimum width of the tree at the upper layer.
 * : (optional) Controls how tree's roots are generated.
 * : Type of tree root placer, currently only.
 * : The block used as the root of the tree.
 * : Offset perpendicular to the trunk.
 * : (optional) The blocks above the root.
 * : The block above the root.
 * : The probability of generating the block. Value between 0.0 and 1.0 (inclusive).
 * If is, additional fields are as follows :
 * : Mangrove root placement parameter.
 * : The maximum width of the root. Value between 1 and 12 (inclusive).
 * : The maximum length of the root. Value between 1 and 64 (inclusive).
 * : The probability of random skew. Value between 0.0 and 1.0 (inclusive).
 * : A block ID or a block tag, or a list of block IDs. Blocks that roots can grow through.
 * : A block ID or a block tag, or a list of block IDs. Roots in it will turn into muddy root blocks.
 * : Blocks used as muddy roots.
 * : Value between 0 and 32 (inclusive).
 * : Value between 0 and 24 (inclusive).
 * : Value between 0 and 24 (inclusive).
 * : One of,  ,  ,  ,  ,  ,  , or.
 * If  is , additional fields are as follows :
 * : Value between 1 and 64 (inclusive).
 * : (optional, defaults to 1) Must be a positive integer.
 * If  is , additional fields are as follows :
 * : The number of steps to generate extra branches. Must be a positive integer.
 * : Generates extra branch length. Must be a non-negative integer.
 * : The probability of each log producing a branch. Value between 0.0 and 1.0 (inclusive).
 * : A block ID or a block tag, or a list of block IDs. Represents blocks that tree trunks can grow through.
 * The radius of the foliage.
 * The vertical offest from the top of trunk to the top of the foliage.
 * One of,  ,  ,  ,  ,  ,  ,  ,  , or.
 * If  is ,  ,  , or  , the additional fields are as follows:
 * The foliage's height. Value between 0 and 16 (inclusive).
 * If  is , the additional fields are as follows:
 * Value between 0 and 24 (inclusive).
 * If  is , the additional fields are as follows:
 * Value between 0 and 24 (inclusive).
 * If  is , the additional fields are as follows:
 * Value between 0 and 24 (inclusive).
 * If  is , the additional fields are as follows:
 * Value between 1 and 512 (inclusive).
 * Value between 0 and 256 (inclusive).
 * (Required, but can be empty) Decorations to add to the tree apart from the trunk and leaves.
 * A decorator.
 * The type of decoration to add. One of,  ,  ,  ,  , or.
 * If  is ,   or  , additional fields are as follows :
 * Value between 0.0 and 1.0 (inclusive).
 * If  is , additional fields are as follows :
 * The block to replace the ground with.
 * If  is , additional fields are as follows :
 * : Value between 0.0 and 1.0 (inclusive).
 * : The minimum value of the horizontal distance between two decorations. Value between 0 and 16 (inclusive).
 * : The minimum value of the vertical distance between two decorations. Value between 0 and 16 (inclusive).
 * : The number of empty blocks required by the decoration. Value between 0 and 16 (inclusive).
 * : The block of the decoration.
 * : (Cannot be empty) Directions to generate.
 * : A direction. Must be, , , , , or.
 * Value between 1 and 512 (inclusive).
 * Value between 0 and 256 (inclusive).
 * (Required, but can be empty) Decorations to add to the tree apart from the trunk and leaves.
 * A decorator.
 * The type of decoration to add. One of,  ,  ,  ,  , or.
 * If  is ,   or  , additional fields are as follows :
 * Value between 0.0 and 1.0 (inclusive).
 * If  is , additional fields are as follows :
 * The block to replace the ground with.
 * If  is , additional fields are as follows :
 * : Value between 0.0 and 1.0 (inclusive).
 * : The minimum value of the horizontal distance between two decorations. Value between 0 and 16 (inclusive).
 * : The minimum value of the vertical distance between two decorations. Value between 0 and 16 (inclusive).
 * : The number of empty blocks required by the decoration. Value between 0 and 16 (inclusive).
 * : The block of the decoration.
 * : (Cannot be empty) Directions to generate.
 * : A direction. Must be, , , , , or.
 * : (Cannot be empty) Directions to generate.
 * : A direction. Must be, , , , , or.
 * : A direction. Must be, , , , , or.


 * Must be a positive integer. The max spread width is
 * Must be a positive integer. The max spread height is
 * Must be a positive integer. The max length is, and the min length is 1.


 * Value between 0 and 512 (inclusive).
 * Value between 0 and 64 (inclusive).
 * Value between 0.0 and 1.0 (inclusive).


 * The surface to place on. One of, or
 * : Value between 1 and 128 (inclusive).
 * Value between 1 and 256 (inclusive).
 * Value between 0.0 and 1.0 (inclusive).
 * Value between 0.0 and 1.0 (inclusive).
 * Value between 0.0 and 1.0 (inclusive). The chance that a vegetation feature will be placed, is evaluated for each block.
 * The radius of the patch.
 * A block tag with  specifying what blocks this feature can replace.
 * The block to use for the ground of the patch.
 * The placed feature to place on top of the patch. Can be a placed feature ID, or a placed feature object.
 * The block to use for the ground of the patch.
 * The placed feature to place on top of the patch. Can be a placed feature ID, or a placed feature object.
 * The placed feature to place on top of the patch. Can be a placed feature ID, or a placed feature object.