diff --git a/behavior/features/features.json b/behavior/features/features.json index f498efa5..d7d023bc 100644 --- a/behavior/features/features.json +++ b/behavior/features/features.json @@ -1 +1 @@ -{"$id":"blockception.minecraft.behavior.features","type":"object","title":"Features","description":"Features are decorations scattered throughout the world. Things such as trees, plants, flowers, springs, ore, and coral are all features. Basically, if it isn't the terrain or a mob, it's probably a feature!","additionalProperties":false,"required":["format_version"],"minProperties":2,"maxProperties":2,"properties":{"format_version":{"$ref":"#/definitions/A"},"minecraft:aggregate_feature":{"$ref":"#/definitions/B"},"minecraft:cave_carver_feature":{"$ref":"#/definitions/E"},"minecraft:fossil_feature":{"$ref":"#/definitions/H"},"minecraft:geode_feature":{"$ref":"#/definitions/I"},"minecraft:growing_plant_feature":{"$ref":"#/definitions/J"},"minecraft:multiface_feature":{"$ref":"#/definitions/BB"},"minecraft:nether_cave_carver_feature":{"$ref":"#/definitions/BC"},"minecraft:ore_feature":{"$ref":"#/definitions/BD"},"minecraft:partially_exposed_blob_feature":{"$ref":"#/definitions/BE"},"minecraft:scatter_feature":{"$ref":"#/definitions/BF"},"minecraft:search_feature":{"$ref":"#/definitions/BG"},"minecraft:sequence_feature":{"$ref":"#/definitions/BH"},"minecraft:single_block_feature":{"$ref":"#/definitions/BI"},"minecraft:snap_to_surface_feature":{"$ref":"#/definitions/BJ"},"minecraft:structure_template_feature":{"$ref":"#/definitions/CA"},"minecraft:surface_relative_threshold_feature":{"$ref":"#/definitions/CB"},"minecraft:tree_feature":{"$ref":"#/definitions/CC"},"minecraft:underwater_cave_carver_feature":{"$ref":"#/definitions/CE"},"minecraft:vegetation_patch_feature":{"$ref":"#/definitions/CF"},"minecraft:weighted_random_feature":{"$ref":"#/definitions/CG"}},"definitions":{"A":{"title":"Format Version","description":"A version that tells minecraft what type of data format can be expected when reading this file.","pattern":"^([1-9]+)\\.([0-9]+)\\.([0-9]+)$","type":"string","default":"1.20.81","examples":["1.20.81","1.20.40","1.19.0","1.12.0","1.10.0","1.8.0"],"defaultSnippets":[{"label":"New Format version","body":"1.${1|8,10,12,17,18,19,20|}.${3|2|0|}"}]},"D":{"description":"A minecraft feature identifier.","examples":["namespace:feature"],"pattern":"^[0-9a-zA-Z:_\\.\\-]+$","title":"Feature Identifier","type":"string","defaultSnippets":[{"label":"New Identifier","body":"$1:$2"}]},"C":{"title":"Description","description":"Feature's description containing the identifier","type":"object","required":["identifier"],"properties":{"identifier":{"title":"Identifier","description":"The name of this feature in the form `namespace_name:feature_name`. `feature_name` must match the filename.","type":"string","$ref":"#/definitions/D"}}},"B":{"title":"Aggregate Feature","description":"'minecraft:aggregate_feature` places a collection of features in an arbitary order. All features in the collection use the same input position. Features should not depend on each other, as there is no guarantee on the order the features will be placed.\n Succeeds if: At lease one feature is placed successfully.\n Fails if: All features fail to be placed.","type":"object","additionalProperties":false,"required":["description","features"],"properties":{"description":{"$ref":"#/definitions/C"},"features":{"title":"Features","description":"Collection of features to be placed one by one. No guarantee of order. All features use the same input position.","type":"array","minItems":1,"items":{"title":"Feature","description":"Feature identifer","type":"string"}},"early_out":{"type":"string","title":"Early Out","description":"Do not continue placing features once either the first success or first failure has occurred.","enum":["none","first_failure","first_success"]}}},"F":{"description":"A minecraft block identifier.","examples":["namespace:block"],"pattern":"^[0-9a-zA-Z:_\\.\\-]+$","title":"Block Identifier","type":"string","defaultSnippets":[{"label":"New Identifier","body":"$1:$2"}]},"G":{"title":"Molang Number","description":"The minecraft molang definition that results in a float.","anyOf":[{"type":"string","minLength":0},{"type":"number"}],"examples":["(1.0)","(0.0)"],"defaultSnippets":[{"label":"New Molang","body":"$1"}]},"E":{"type":"object","title":"Cave Carver Feature","description":"`minecraft:cave_carver_feature` carves a cave through the world in the current chunk, and in every chunk around the current chunk in an 8 radial pattern. This feature will also only work when placed specifically in the pass `pregeneration_pass`.","additionalProperties":false,"required":["description"],"properties":{"description":{"$ref":"#/definitions/C"},"fill_with":{"title":"Fill With","description":"Reference to the block to fill the cave with.","$ref":"#/definitions/F"},"width_modifier":{"title":"Width Modifier","description":"How many blocks to increase the cave radius by, from the center point of the cave.","$ref":"#/definitions/G"},"skip_carve_chance":{"title":"Skip Carve Chance","description":"The chance to skip doing the carve (1 / value).","type":"integer","minimum":1},"height_limit":{"title":"Height Limit","description":"The height limit where we attempt to carve","type":"integer"},"y_scale":{"type":"array","title":"Y Scale","description":"The scaling in y","minItems":2,"maxItems":2,"items":[{"type":"number","title":"Min"},{"type":"number","title":"Max"}]},"horizontal_radius_multiplier":{"type":"array","title":"Horizontal Radius Multiplier","minItems":2,"maxItems":2,"items":[{"type":"number","title":"Min"},{"type":"number","title":"Max"}]},"vertical_radius_multiplier":{"type":"array","title":"Vertical Radius Multiplier","minItems":2,"maxItems":2,"items":[{"type":"number","title":"Min"},{"type":"number","title":"Max"}]},"floor_level":{"type":"array","title":"Floor Level","minItems":2,"maxItems":2,"items":[{"type":"number","title":"Min"},{"type":"number","title":"Max"}]}}},"H":{"type":"object","title":"Fossil Feature","description":"'minecraft:fossil_feature' generates a skeletal structure composed of bone blocks and parametric ore blocks.","additionalProperties":false,"required":["description"],"properties":{"description":{"$ref":"#/definitions/C"},"ore_block":{"title":"Ore Block","description":"Reference to the block to fill the cave with.","$ref":"#/definitions/F"},"max_empty_corners":{"title":"Max Empty Corners","description":"UNDOCUMENTED","type":"integer"}}},"I":{"type":"object","title":"Geode Feature","description":"`minecraft:geode_feature` generates a rock formation to simulate a geode. Each layer of, and block within, the geode can be replaced.\nSucceeds if: At least one block within the geode is placed.\nFails if: All blocks within the geode fail to be placed.","required":["description","max_radius","filler","inner_layer","alternate_inner_layer","use_alternate_layer0_chance","middle_layer","outer_layer","placements_require_layer0_alternate","use_potential_placements_chance","min_distribution_points","max_distribution_points","min_outer_wall_distance","max_outer_wall_distance","min_point_offset","max_point_offset","noise_multiplier","invalid_blocks_threshold","crack_point_offset","generate_crack_chance","base_crack_size"],"additionalProperties":false,"examples":[{"description":{"identifier":"geode_features:geode_feature"},"max_radius":80,"filler":"minecraft:air","inner_layer":"minecraft:stone","alternate_inner_layer":"minecraft:cobblestone","use_alternate_layer0_chance":0.5,"middle_layer":"minecraft:planks","outer_layer":"minecraft:obsidian","inner_placements":["mincraft:glass"],"placements_require_layer0_alternate":true,"use_potential_placements_chance":0.125,"min_distribution_points":3,"max_distribution_points":3,"min_outer_wall_distance":3,"max_outer_wall_distance":3,"min_point_offset":0,"max_point_offset":0,"noise_multiplier":0.025,"invalid_blocks_threshold":10000,"crack_point_offset":0,"generate_crack_chance":0,"base_crack_size":0}],"properties":{"description":{"$ref":"#/definitions/C"},"filler":{"title":"Filler","type":"string","description":"The block to fill the inside of the geode.","$ref":"#/definitions/F"},"inner_layer":{"title":"Inner Layer","type":"string","description":"The block that forms the inside layer of the geode shell.","$ref":"#/definitions/F"},"alternate_inner_layer":{"title":"Alternate Inner Layer","type":"string","description":"The block that has a chance of generating instead of inner_layer.","$ref":"#/definitions/F"},"middle_layer":{"title":"Middle Layer","type":"string","description":"The block that forms the middle layer of the geode shell.","$ref":"#/definitions/F"},"outer_layer":{"title":"Outer Layer","type":"string","description":"The block that forms the outer shell of the geode.","$ref":"#/definitions/F"},"inner_placements":{"title":"Inner Placements","description":"A list of blocks that may be replaced during placement. Omit this field to allow any block to be replaced.","type":"array","minItems":1,"items":{"title":"Block Reference","description":"A block that may be replaced during placement.","$ref":"#/definitions/F"}},"min_outer_wall_distance":{"title":"Minimum Outer Wall Distance","type":"integer","description":"The minimum distance each distribution point must be from the outer wall. [0,10]","minimum":1,"maximum":10},"max_outer_wall_distance":{"title":"Maximum Outer Wall Distance","type":"integer","description":"The maximum distance each distribution point can be from the outer wall. [0,20]","minimum":1,"maximum":20},"min_distribution_points":{"title":"Minimum Distribution Points","type":"integer","description":"The minimum number of points inside the distance field that can get generated. The distance field is the area consisting of all points with a minimum distance to all destribution points. [0,10]","minimum":1,"maximum":10},"max_distribution_points":{"title":"Maximum Distribution Points","type":"integer","description":"The maximum number of points inside the distance field that can get generated. The distance field is the area consisting of all points with a minimum distance to all destribution points. [0,20]","minimum":1,"maximum":20},"min_point_offset":{"title":"Minimum Point Offset","type":"integer","description":"The lowest possible value of random offset applied to the position of each distribution point. [0,10]","minimum":0,"maximum":10},"max_point_offset":{"title":"Maximum Point Offset","type":"integer","description":"The highest possible value of random offset applied to the position of each distribution point. [0,10]","minimum":0,"maximum":10},"max_radius":{"title":"Maximum Radius","type":"integer","description":"The maximum possible radius of the geode generated."},"crack_point_offset":{"title":"Crack Point Offset","type":"integer","description":"An offset applied to each distribution point that forms the geode crack opening. [0,10]","minimum":0,"maximum":10},"generate_crack_chance":{"title":"Generate Crack Chance","type":"number","description":"The likelihood of a geode generating with a crack in its shell. [0,1]","minimum":0.0,"maximum":1.0},"base_crack_size":{"title":"Base Crack Size","type":"number","description":"How large the crack opening of the geode should be when generated. [0,5]","minimum":0.0,"maximum":5.0},"noise_multiplier":{"title":"Noise Multiplier","type":"number","description":"A multiplier applied to the noise that is applied to the distribution points within the geode. Higher = more noisy."},"use_potential_placements_chance":{"title":"Use Potential Placements Chance","type":"number","description":"The likelihood that a special block will be placed on the inside of the geode. [0,1]","minimum":0.0,"maximum":1.0},"use_alternate_layer0_chance":{"title":"Use Alternate Layer0 Chance","type":"number","description":"The likelihood that a block in the innermost layer of the geode will be replaced with an alternate option. [0,1]","minimum":0.0,"maximum":1.0},"placements_require_layer0_alternate":{"title":"Placements Require Layer0 Alternate","type":"boolean","description":" If true, the potential placement block will only be placed on the alternate layer0 blocks that get placed. Potential placement blocks are blocks that depend on the existance of another block to be placed. The latter are the layer0 alternate blocks."},"invalid_blocks_threshold":{"title":"Invalid Blocks Threshold","type":"integer","description":"The threshold of invalid blocks for a geode to have a distribution point in before it aborts generation entirely."}}},"J_range":{"title":"Range","description":"A range.","type":"object","required":["range_min","range_max"],"examples":[{"range_min":8,"range_max":9}],"properties":{"range_max":{"title":"Range Max","type":"integer","description":"The maximum plant height."},"range_min":{"title":"Range Min","type":"integer","description":"The minimum plant height."}}},"J_rangeOrInt":{"oneOf":[{"type":"integer","minimum":0},{"type":"object","$ref":"#/definitions/J_range"}]},"J_blocks_array":{"type":"array","minItems":1,"items":{"title":"Blocks","description":"Collection of weighted block descriptor that placement will select from for the plant.","type":"array","minItems":2,"maxItems":2,"items":[{"title":"Plant Body Block","description":"Plant body block.","type":"string","$ref":"#/definitions/F"},{"title":"Age","$ref":"#/definitions/BA"}]}},"BA":{"title":"Range [A, B]","description":"A described range.","examples":[[0.0,1.0]],"oneOf":[{"type":"number"},{"type":"array","items":[{"type":"number","title":"A","description":"The first value of the range."},{"type":"number","title":"B","description":"The second value of the range."}]},{"type":"object","additionalProperties":false,"properties":{"range_min":{"type":"number","title":"Range Min","description":"The minimum value of the range."},"range_max":{"type":"number","title":"Range Max","description":"The maximum value of the range."}}}]},"J":{"type":"object","title":"Growing Plant Feature","description":"`minecraft:growing_plant_feature` places a growing plant in the world. A growing plant is a column that is anchored either to the ceiling or the floor, based on its growth direction.\nThe growing plant has a body and a head, where the head is the tip of the plant, and the body consists of the remainder blocks.\nThis feature can be used to define growing plants with variable body and head blocks, e.g. Cave Vines.","additionalProperties":false,"required":["description","height_distribution","growth_direction","body_blocks","head_blocks"],"properties":{"description":{"$ref":"#/definitions/C"},"age":{"title":"Age","description":"Age of the head of the plant.","$ref":"#/definitions/J_rangeOrInt"},"height_distribution":{"title":"Height Distribution","description":"Collection of weighted heights that placement will select from.","type":"array","minItems":1,"examples":[[[{"range_min":8,"range_max":9},1],[6,1]]],"items":{"title":"Items","description":"Collection of weighted heights that placement will select from.","type":"array","minItems":2,"maxItems":2,"items":[{"title":"Plant Height","description":"Plant height.","$ref":"#/definitions/J_rangeOrInt"},{"type":"number","title":"Weight","description":"Weight used in random selection. Value is relative to other weights in the collection.","minimum":0}]}},"growth_direction":{"title":"Growth Direction","description":"Direction that the plant grows towards. Valid values: UP and DOWN","type":"string","enum":["UP","DOWN","up","down"]},"body_blocks":{"title":"Body Blocks","description":"Collection of weighted block descriptor that placement will select from for the body of the plant.","$ref":"#/definitions/J_blocks_array"},"head_blocks":{"title":"Head Blocks","description":"Collection of weighted block descriptor that placement will select from for the body of the plant.","$ref":"#/definitions/J_blocks_array"},"allow_water":{"title":"Allow Water","description":"Plant blocks can be placed in water.","type":"boolean"}}},"BB":{"title":"Multiface Feature","description":"`minecraft:multiface_feature` places one or a few multiface blocks on floors/walls/ceilings. Despite the name, any block can be placed by this feature. During placement, existing world blocks are checked to see if this feature can be placed on them based on the list provided in the `can_place_on` field. If no `can_replace_on` field is specified, the `place_block` block can be placed on any existing block.\nThis feature will also try to spread the `place_block` block around the location in world the feature is placed.\nSucceeds if: At least one block is successfully placed.\nFails if: All block placements fail.","type":"object","additionalProperties":false,"required":["description","places_block","search_range","can_place_on_floor","can_place_on_ceiling","can_place_on_wall","chance_of_spreading"],"properties":{"description":{"$ref":"#/definitions/C"},"places_block":{"title":"Places Block","description":"Reference to the block to be placed.","type":"string","$ref":"#/definitions/F"},"search_range":{"title":"Search Range","description":"How far, in blocks, this feature can search for a valid position to place.","type":"integer","minimum":1,"maximum":64},"can_place_on_floor":{"title":"Can Place On Floor","description":"Can this feature be placed on the ground (top face of a block)?.","type":"boolean"},"can_place_on_ceiling":{"title":"Can Place On Ceiling","description":"Can this feature be placed on the ceiling (bottom face of a block)?.","type":"boolean"},"can_place_on_wall":{"title":"Can Place On Wall","description":"Can this feature be placed on the wall (side faces of a block)?.","type":"boolean"},"chance_of_spreading":{"title":"Chance Of Spreading","description":"For each block placed by this feature, how likely will that block spread to another?.","type":"number","minimum":0.0,"maximum":1.0},"can_place_on":{"title":"Can Place On","description":" How far, in blocks, this feature can search for a valid position to place.","type":"array","minItems":1,"items":{"title":"Block","description":" A list of blocks that the block in this feature can be placed on. Omit this field to allow any block to be placed on.","$ref":"#/definitions/F"}}}},"BC":{"title":"Nether Cave Carver Feature","description":"`minecraft:nether_cave_carver_feature` carves a cave through the Nether in the current chunk, and in every chunk around the current chunk in an 8 radial pattern.This feature will also only work when placed specifically in the pass `pregeneration_pass`.","type":"object","additionalProperties":false,"required":["description"],"properties":{"description":{"$ref":"#/definitions/C"},"fill_with":{"title":"Identifier","description":"Reference to the block to fill the cave with.","type":"string","$ref":"#/definitions/F"},"width_modifier":{"title":"Identifier","description":"How many blocks to increase the cave radius by, from the center point of the cave.","$ref":"#/definitions/G"},"skip_carve_chance":{"title":"Skip Carve Chance","description":"The chance to skip doing the carve (1 / value).","type":"integer","minimum":1},"height_limit":{"title":"Height Limit","description":"The height limit where we attempt to carve","type":"integer"},"y_scale":{"type":"array","title":"Y Scale","description":"The scaling in y","minItems":2,"maxItems":2,"items":[{"type":"number","title":"Min"},{"type":"number","title":"Max"}]},"horizontal_radius_multiplier":{"type":"array","title":"Horizontal Radius Multiplier","minItems":2,"maxItems":2,"items":[{"type":"number","title":"Min"},{"type":"number","title":"Max"}]},"vertical_radius_multiplier":{"type":"array","title":"Vertical Radius Multiplier","minItems":2,"maxItems":2,"items":[{"type":"number","title":"Min"},{"type":"number","title":"Max"}]},"floor_level":{"type":"array","title":"Floor Level","minItems":2,"maxItems":2,"items":[{"type":"number","title":"Min"},{"type":"number","title":"Max"}]}}},"BD":{"type":"object","title":"Ore Feature","description":"`minecraft:ore_feature` places a vein of blocks to simulate ore deposits. Despite the name, any block can be placed by this feature. During placement, existing world blocks are checked to see if they can be replaced by the new ore block based on the list provided in the `may_replace` field of a `replace_rules` entry. If no `may_replace` field is specified in a `replace_rule` entry, the ore block can replace any existing block.\nSucceeds if: At least one ore block is successfully placed.\nFails if: All ore block placements fail.","additionalProperties":false,"required":["count","description"],"properties":{"description":{"$ref":"#/definitions/C"},"count":{"title":"Count","description":"The number of blocks to be placed.","type":"number","minimum":1},"replace_rules":{"title":"Replace Rules","description":"Collection of replace rules that will be checked in order of definition. If a rule is resolved, the rest will not be resolved for that block position.","type":"array","minItems":1,"items":{"title":"Repalce Rule","description":"If a rule is resolved, the rest will not be resolved for that block position.","type":"object","required":["places_block"],"properties":{"places_block":{"title":"Places Block","description":"Reference to the block to be placed.","$ref":"#/definitions/F"},"may_replace":{"title":"May Replace","description":"A list of blocks that may be replaced during placement. Omit this field to allow any block to be replaced.","type":"array","minItems":1,"items":{"$ref":"#/definitions/F"}}}}},"discard_chance_on_air_exposure":{"title":"Discard Chance On Air Exposure","description":"Chance of discarding placement if neighboring block is Air.","type":"number","minimum":0,"maximum":1}}},"BE":{"type":"object","title":"Partially Exposed Blob Feature","description":"'minecraft:partially_exposed_blob_feature' generates a blob of the specified block with the specified dimensions For the most part the blob is embedded in the specified surface, however a single side is allowed to be exposed.","additionalProperties":false,"required":["places_block","description","placement_radius_around_floor","placement_probability_per_valid_position"],"properties":{"description":{"$ref":"#/definitions/C"},"places_block":{"title":"Places Block","description":"Reference to the block to be placed.","$ref":"#/definitions/F"},"placement_radius_around_floor":{"title":"Placement Radius Around Floor","description":"Defines the cubic radius of the blob.","type":"number","minimum":1,"maximum":8},"placement_probability_per_valid_position":{"title":"Placement Probability Per Valid Position","description":"The probability of trying to place a block at each position within the placement bounds.","type":"number","minimum":0,"maximum":1},"exposed_face":{"title":"Exposed Face","description":"Defines a block face that is allowed to be exposed to air and/or water. Other faces need to be embedded for blocks to be placed by this feature. Defaults to upwards face","default":"up","enum":["up","down","side","north","east","west","south"]}}},"BF_coord_dist":{"title":"Coordinate","oneOf":[{"$ref":"#/definitions/G","description":"Expression for the coordinate (evaluated each iteration). Mutually exclusive with random distribution object below."},{"type":"object","description":"Distribution for the coordinate (evaluated each iteration). Mutually exclusive with Molang expression above.","additionalProperties":false,"required":["extent","distribution"],"properties":{"distribution":{"title":"Distribution","description":"Type of distribution - uniform random, gaussian (centered in the range), triangle (centered in the range), or grid (either fixed-step or jittered).","type":"string","enum":["uniform","gaussian","inverse_gaussian","triangle","fixed_grid","jittered_grid"]},"step_size":{"title":"Step Size","description":"When the distribution type is grid, defines the distance between steps along this axis.","type":"integer","minimum":1},"grid_offset":{"title":"Step Size","description":"When the distribution type is grid, defines the offset along this axis.","type":"integer","minimum":0},"extent":{"title":"Extent","description":"The lower and upper bound as an offset from the input position","type":"array","items":[{"title":"Lower Bound","$ref":"#/definitions/G","description":"Lower bound (inclusive) of the scatter range, as an offset from the input point to scatter around."},{"title":"Upper Bound","$ref":"#/definitions/G","description":"Upper bound (inclusive) of the scatter range, as an offset from the input point to scatter around."}]}}}]},"BF":{"type":"object","title":"Scatter Feature","description":"`minecraft:scatter_feature` scatters a feature throughout a chunk. The `x`, `y`, and `z` fields are per-coordinate parameters.\nNote that coordinates represent an offset from the input position, not an absolute position. Coordinates may be a single value, a random distribution, or molang expression that resolves to a numeric value. The `coordinate_eval_order` field is provided for finer control of coordinate resolution (particularly when using the `grid` distribution). `iterations` controls how many individual placements should occur if the `scatter_chance` check succeeds. The `scatter_chance` check happens once, so either all placements will run or none will.\nSucceeds if: At least one feature placement succeeds.\nFails if: All feature placements fail.","additionalProperties":false,"required":["description","places_feature","iterations"],"properties":{"description":{"$ref":"#/definitions/C"},"places_feature":{"title":"Places Feature","description":"Named reference of feature to be placed.","type":"string","$ref":"#/definitions/D"},"project_input_to_floor":{"title":"Project Input To Floor","description":"If true, snaps the y-value of the scattered position to the terrain heightmap. If false or unset, y-value is unmodified.","type":"boolean"},"distribution":{"title":"Distribution","description":"Parameters controlling the initial scatter of the feature.","type":"object","additionalProperties":false,"required":["iterations"],"properties":{"coordinate_eval_order":{"title":"Coordinate Eval Order","description":"The order in which coordinates will be evaluated. Should be used when a coordinate depends on another. If omitted, defaults to `xzy`.","type":"string","enum":["xyz","xzy","yxz","yzx","zxy","zyx"]},"iterations":{"title":"Iterations","description":"Number of scattered positions to generate.","$ref":"#/definitions/G"},"scatter_chance":{"title":"Scatter Chance","oneOf":[{"$ref":"#/definitions/G","description":"Probability (0-100] that this scatter will occur. Not evaluated each iteration; either no iterations will run, or all will."},{"type":"object","description":"Probability numerator / denominator that this scatter will occur. Not evaluated each iteration; either no iterations will run, or all will.","additionalProperties":false,"properties":{"numerator":{"title":"Numerator","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","type":"number","minimum":1},"denominator":{"title":"Denominator","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","type":"number","minimum":1}}}]},"x":{"title":"X","$ref":"#/definitions/BF_coord_dist"},"z":{"title":"Y","$ref":"#/definitions/BF_coord_dist"},"y":{"title":"Z","$ref":"#/definitions/BF_coord_dist"}}}}},"BG":{"type":"object","title":"Search Feature","description":"`minecraft:search_feature` sweeps a volume searching for a valid placement location for its referenced feature. The `search_volume` field specifies the axis-aligned bounding box that defines the boundaries of the search. The search sweeps along the axis defined by the `search_axis` field, layer by layer. For example, if `search_axis` = '-x', blocks with greater x values will be checked before blocks with lower x values. Each layer is searched from the bottom-left to the top-right before moving to the next layer along the axis. By default, only one valid position must be found, but this can be altered by specifying the `required_successes` field. If fewer than the required successes are found, no placement will occur.\nSucceeds if: The number of valid positions is equal to the value specified by `required_successes`.\nFails if: The number of valid positions is less than the value specified by `required_successes`.","additionalProperties":false,"required":["description","search_axis"],"properties":{"description":{"$ref":"#/definitions/C"},"places_feature":{"title":"Places Feature","description":"Named reference of feature to be placed.","type":"string","$ref":"#/definitions/D"},"search_volume":{"title":"Places Feature","description":"Axis-aligned bounding box that will be searched for valid placement positions. Expressed as offsets from the input position.","type":"object","additionalProperties":false,"required":["min","max"],"properties":{"max":{"title":"Max","description":"Maximum extent of the bounding volume expressed as [ x, y, z ].","type":"array","items":[{"title":"Maximum X","type":"integer"},{"title":"Maximum Y","type":"integer"},{"title":"Maximum Z","type":"integer"}]},"min":{"title":"Min","description":"Maxium extent of the bounding volume expressed as [ x, y, z ].","type":"array","items":[{"title":"Minimum X","type":"integer"},{"title":"Minimum Y","type":"integer"},{"title":"Minimum Z","type":"integer"}]}}},"search_axis":{"title":"Search Axis","description":"Axis that the search will sweep along through the `search_volume`.","type":"string","enum":["-x","+x","-y","+y","-z","+z"]},"required_successes":{"title":"Required Successes","description":"Number of valid positions the search must find in order to place the referenced feature.","type":"integer","minimum":1}}},"BH":{"title":"Sequence Feature","description":"`minecraft:sequence_feature` places a collection of features sequentially, in the order they appear in data. The output position of the previous feature is used as the input position for the next. For example, a tree feature is placed at (0, 0, 0) and places blocks up to (0, 10, 0). The next feature in the sequence begins at (0, 10, 0).\nSucceeds if: All features in the sequence are successfully placed.\nFails if: Any feature in the sequence fails to be placed. Features that have not yet been placed at the time of failure are skipped.","type":"object","additionalProperties":false,"required":["description","features"],"properties":{"description":{"$ref":"#/definitions/C"},"features":{"title":"Features","description":"List of features to be placed in sequence. The output position of the previous feature is used as the input position to the next.","type":"array","minItems":1,"items":{"title":"Feature","description":"A feature to be placed in sequence. The output position of the previous feature is used as the input position to the next.","$ref":"#/definitions/D"}}}},"BI_block_side":{"oneOf":[{"title":"Block","description":"Reference to the block it may attach to.","type":"string","$ref":"#/definitions/F"},{"type":"array","items":{"title":"Block","description":"Reference to the block it may attach to.","type":"string","$ref":"#/definitions/F"}}]},"BI":{"title":"Single Block Feature","description":"`minecraft:single_block_feature` places a single block in the world. The `may_place_on` and `may_replace` fields are allowlists which specify where the block can be placed. If these fields are omitted, the block can be placed anywhere. The block's internal survivability and placement rules can optionally be enforced with the `enforce_survivability_rules` and `enforce_placement_rules` fields. These rules are specified per-block and are typically designed to produce high quality gameplay or natural behavior. However, enabling this enforcement may make it harder to debug placement failures.\n Succeeds if: The block is successfully placed in the world.\n Fails if: The block fails to be placed.","type":"object","additionalProperties":false,"required":["description","places_block","enforce_placement_rules","enforce_survivability_rules"],"properties":{"description":{"$ref":"#/definitions/C"},"places_block":{"anyOf":[{"title":"Places Block","description":"Reference to the block to be placed.","type":"string","$ref":"#/definitions/F"},{"title":"Places Block","description":" Collection of weighted block references that will be placed.","type":"array","minItems":1,"items":{"title":"Block","description":"Reference to the block to be placed.","type":"array","items":[{"title":"Block","description":"Reference to the block to be placed.","$ref":"#/definitions/F"},{"title":"Weight","description":"Random weight of this block. A higher number will increase the probability of this block to be picked during placement.","type":"number"}]}}]},"enforce_placement_rules":{"title":"Enforce Placement Rules","description":"If true, enforce the block's canPlace check.","type":"boolean"},"enforce_survivability_rules":{"title":"Enforce Survivability Rules","description":"If true, enforce the block's canSurvive check.","type":"boolean"},"randomize_rotation":{"title":"Randomize Rotation","description":"If true, randomizes the block's cardinal orientation.","type":"boolean"},"may_attach_to":{"title":"May Attach To","description":"The list of valid block and block faces the given block may attach to when being placed.","type":"object","additionalProperties":false,"properties":{"min_sides_must_attach":{"title":"Minimum Sides Must Attach","description":"Minimum number of sides that must be attached when being placed.","minimum":1,"maximum":4},"auto_rotate":{"title":"Auto Rotate","description":"Automatically rotate the block to attach sensibly.","type":"boolean"},"top":{"title":"Top","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"},"bottom":{"title":"Bottom","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"},"north":{"title":"North","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"},"south":{"title":"South","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"},"east":{"title":"East","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"},"west":{"title":"West","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"},"all":{"title":"All","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"},"sides":{"title":"Sides","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"},"diagonal":{"title":"Diagonal","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"}}},"may_not_attach_to":{"title":"May Not Attach To","description":"Denylist which specifies where the block can't be placed.","type":"object","additionalProperties":false,"properties":{"top":{"title":"Top","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"},"bottom":{"title":"Bottom","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"},"north":{"title":"North","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"},"south":{"title":"South","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"},"east":{"title":"East","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"},"west":{"title":"West","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"},"all":{"title":"All","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"},"sides":{"title":"Sides","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"},"diagonal":{"title":"Diagonal","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"}}},"may_replace":{"title":"May Replace","description":"A list of blocks that may be replaced during placement. Omit this field to allow any block to be replaced.","type":"array","items":{"title":"Block","description":"A block that may be replaced during placement. Omit this field to allow any block to be replaced.","type":"string","$ref":"#/definitions/F"}}}},"BJ":{"title":"Snap To Surface Feature","description":"`minecraft:snap_to_surface_feature` snaps the y-value of a feature placement pos to the floor or the ceiling within the provided `vertical_search_range`. The placement biome is preserved. \nIf the snap position goes outside of the placement biome, placement will fail.","type":"object","additionalProperties":false,"required":["description","feature_to_snap","vertical_search_range"],"properties":{"description":{"$ref":"#/definitions/C"},"feature_to_snap":{"title":"Feature To Snap","description":"Named reference of feature to be snapped.","type":"string","$ref":"#/definitions/D"},"vertical_search_range":{"title":"Vertical Search Range","description":"Range to search for a floor or ceiling for snaping the feature.","type":"number"},"surface":{"title":"Surface","description":"Defines the surface that the y-value of the placement position will be snapped to. Valid values: `ceiling` and `floor'","type":"string","enum":["ceiling","floor","random_horizontal"]},"allow_air_placement":{"title":"Allow Air Placement","description":"Determines whether the feature can snap through air blocks","type":"boolean","default":true},"allow_underwater_placement":{"title":"Allow Underwater Placement","description":"Determines whether the feature can snap through water blocks","type":"boolean","default":false}}},"CA":{"title":"Structure Template Feature","description":"`minecraft:structure_template_feature` places a structure in the world. The structure must be stored as a .mcstructure file in the `structures` subdirectory of a behavior pack. It is possible to reference structures that are part of other behavior packs, they do not need to come from the same behavior pack as this feature. Constraints can be defined to specify where the structure is allowed to be placed. During placement, the feature will search for a position within the 'adjustment_radius' that satisfies all constraints. If none are found, the structure will not be placed.\nSucceeds if: The structure is placed in the world.\nFails if: The structure fails to be placed within the world.","type":"object","additionalProperties":false,"required":["description","structure_name","constraints"],"properties":{"description":{"$ref":"#/definitions/C"},"structure_name":{"title":"Structure Name","description":"Reference to the structure to be placed.","type":"string"},"adjustment_radius":{"title":"Adjustment Radius","description":"How far the structure is allowed to move when searching for a valid placement position. Search is radial, stopping when the nearest valid position is found. Defaults to 0 if omitted.","type":"integer","minimum":0,"maximum":16},"facing_direction":{"title":"Facing Direction","description":"Direction the structure will face when placed in the world. Defaults to `random` if omitted.","type":"string","enum":["north","south","east","west","random"]},"constraints":{"title":"","description":"Specific constraints that must be satisfied when placing this structure.","type":"object","additionalProperties":false,"properties":{"grounded":{"title":"Grounded","description":"When specified, ensures the structure is on the ground.","type":"object","additionalProperties":false,"properties":{}},"unburied":{"title":"Unburied","description":"When specified, ensures the structure has air above it.","type":"object","additionalProperties":false,"properties":{}},"block_intersection":{"title":"Unburied","description":"When specified, ensures the structure has air above it.","type":"object","additionalProperties":false,"properties":{"block_allowlist":{"title":"Block Allowlist","description":"List of blocks the owning structure is allowed to intersect with.","type":"array","items":{"title":"Block","type":"string","$ref":"#/definitions/F"}},"block_whitelist":{"title":"Block Whitelist","description":"List of blocks the owning structure is allowed to intersect with.","type":"array","items":{"title":"Block","type":"string","$ref":"#/definitions/F"}}}}}}}},"CB":{"type":"object","title":"Surface Relative Threshold Feature","description":"'minecraft:surface_relative_threshold_feature' determines whether the provided position is below the estimated surface level of the world, and places a feature if so.If the provided position is above configured surface or the surface is not available, placement will fail.","additionalProperties":false,"required":["feature_to_place","description"],"properties":{"description":{"$ref":"#/definitions/C"},"feature_to_place":{"title":"Feature To Place","description":"Named reference of feature to be placed.","type":"string","$ref":"#/definitions/D"},"minimum_distance_below_surface":{"title":"Minimum Distance Below Surface","description":"The minimum number of blocks required to be between the estimated surface level and a valid place for this feature.","type":"integer","default":0}}},"CC_branch_canopy":{"title":"Branch Canopy","description":"Configuration object for the canopy.","type":"object","additionalProperties":false,"properties":{"acacia_canopy":{"title":"Acacia Canopy","description":"Configuration object for the acacia canopy.","type":"object","additionalProperties":false,"properties":{"canopy_size":{"title":"Canopy Size","description":"The size of the canopy.","type":"integer","minimum":1},"leaf_block":{"$ref":"#/definitions/CC_leaf_block"},"simplify_canopy":{"$ref":"#/definitions/CC_simplify_canopy"}}},"canopy":{"title":"Canopy","description":"Configuration object for the normal canopy.","type":"object","additionalProperties":false,"properties":{"canopy_offset":{"title":"Canopy Offset","description":"Canopy position offset relative to the block above the trunk.","type":"object","additionalProperties":false,"properties":{"min":{"title":"Min","description":"Min canopy position offset.","type":"integer"},"max":{"title":"Max","description":"Max canopy position offset.","type":"integer"}}},"min_width":{"title":"Min Width","description":"Min width for the canopy.","type":"integer","minimum":0},"canopy_slope":{"title":"Canopy Slope","description":"Configuration object for the canopy slope.","type":"object","additionalProperties":false,"properties":{"rise":{"title":"Rise","description":"The numerator for the slope fraction.","type":"integer","minimum":1},"run":{"title":"Run","description":"The denominator for the slope fraction.","type":"integer","minimum":1}}},"variation_chance":{"title":"Variation Chance","description":"Determines the chance of creating leaf blocks for every layer of the canopy. Larger numbers create a denser tree.","oneOf":[{"$ref":"#/definitions/CD"},{"type":"array","items":{"$ref":"#/definitions/CD"}}]},"leaf_block":{"$ref":"#/definitions/CC_leaf_block"},"canopy_decoration":{"title":"Canopy Decoration","description":"Configuration object for the canopy decoration.","type":"object","additionalProperties":false,"properties":{"decoration_chance":{"title":"Decoration Chance","description":"Probability of decorating the trunk.","$ref":"#/definitions/CD"},"decoration_block":{"title":"Decoration Block","description":"The block used for decorating the trunk.","type":"string","$ref":"#/definitions/F"},"num_steps":{"title":"Num Steps","description":"Number of decoration blocks to place.","type":"integer","minimum":0},"step_direction":{"title":"Step Direction","description":"Directions to spread decoration blocks.","type":"string","enum":["down","up","out","away"]}}}}},"cherry_canopy":{"title":"Cherry Canopy","description":"Configuration object for the cherry canopy.","type":"object","additionalProperties":false,"properties":{"leaf_block":{"$ref":"#/definitions/CC_leaf_block"},"height":{"$ref":"#/definitions/CC_height"},"radius":{"$ref":"#/definitions/CC_radius"},"trunk_width":{"$ref":"#/definitions/CC_trunk_width"},"wide_bottom_layer_hole_chance":{"title":"Wide Bottom Layer Hole Chance","description":"Probability of the canopy having a hole in the bottom layer.","$ref":"#/definitions/CD"},"corner_hole_chance":{"title":"Corner Hole Chance","description":"Probability of the canopy having a hole in the corner.","$ref":"#/definitions/CD"},"hanging_leaves_chance":{"title":"Hanging Leaves Chance","description":"Probability of the canopy having hanging leaves","$ref":"#/definitions/CD"},"hanging_leaves_extension_chance":{"title":"Hanging Leaves Extension Chance","description":"Probability of hanging leaves extending further down","$ref":"#/definitions/CD"}}},"fancy_canopy":{"title":"Fancy Canopy","description":"Configuration object for the fancy canopy.","type":"object","additionalProperties":false,"properties":{"height":{"$ref":"#/definitions/CC_height"},"radius":{"$ref":"#/definitions/CC_radius"},"leaf_block":{"$ref":"#/definitions/CC_leaf_block"}}},"mangrove_canopy":{"title":"Mangrove Canopy","description":"Configuration object for the mangrove canopy.","type":"object","additionalProperties":false,"properties":{"canopy_height":{"$ref":"#/definitions/CC_height"},"canopy_radius":{"$ref":"#/definitions/CC_radius"},"leaf_placement_attempts":{"title":"Leaf Placement Attempts","description":"Max number of attempts to create leaf blocks.","type":"integer","minimum":1},"leaf_blocks":{"title":"Leaf Blocks","description":"The blocks that form the canopy of the tree","type":"array","minItems":1,"items":[{"$ref":"#/definitions/CC_leaf_block"},{"title":"Weight","description":"Weight used in random selection. Value is relative to other weights in the collection.","type":"number","minimum":0}]},"canopy_decoration":{"$ref":"#/definitions/CC_decoration"},"hanging_block":{"title":"Hanging Block","description":"The block to be used as a hanging block.","$ref":"#/definitions/F"},"hanging_block_placement_chance":{"title":"Hanging Block Placement Chance","description":"Probability of creating a hanging leaf block.","$ref":"#/definitions/CD"}}},"mega_canopy":{"title":"Mega Canopy","description":"Configuration object for the mega canopy.","type":"object","additionalProperties":false,"properties":{"canopy_height":{"$ref":"#/definitions/CC_height"},"base_radius":{"$ref":"#/definitions/CC_radius"},"core_width":{"title":"Core Width","description":"Width of the tree trunk.","type":"number","minimum":1},"simplify_canopy":{"$ref":"#/definitions/CC_simplify_canopy"},"leaf_block":{"$ref":"#/definitions/CC_leaf_block"}}},"mega_pine_canopy":{"title":"Mega Pine Canopy","description":"Configuration object for the mega pine canopy.","type":"object","additionalProperties":false,"properties":{"canopy_height":{"$ref":"#/definitions/CC_height"},"base_radius":{"$ref":"#/definitions/CC_radius","minimum":0},"radius_step_modifier":{"title":"Radius Step Modifier","description":"Modifier for the base radius of the canopy.","type":"number","minimum":0},"core_width":{"title":"Core Width","description":"Width of the tree trunk.","type":"number","minimum":1},"leaf_block":{"$ref":"#/definitions/CC_leaf_block"}}},"pine_canopy":{"title":"Pine Canopy","description":"Configuration object for the pine canopy.","type":"object","additionalProperties":false,"properties":{"height":{"$ref":"#/definitions/CC_height"},"radius":{"$ref":"#/definitions/CC_radius"},"leaf_block":{"$ref":"#/definitions/CC_leaf_block"}}},"roofed_canopy":{"title":"Roofed Canopy","description":"Configuration object for the roofed canopy.","type":"object","additionalProperties":false,"properties":{"canopy_height":{"title":"Canopy Height","description":"Roofed canopies feature a base and a top layer, and an extra cap layer on some occasions, this value controls the number of layers in the middle.","type":"integer","minimum":3},"core_width":{"title":"Core Width","description":"Width of the tree trunk.","type":"integer","minimum":1},"outer_radius":{"title":"Outer Radius","description":"Radius used for the base and top layers.","type":"integer","minimum":0},"inner_radius":{"title":"Inner Radius","description":"Radius used for the middle layers.","type":"integer","minimum":0},"leaf_block":{"$ref":"#/definitions/CC_leaf_block"}}},"spruce_canopy":{"title":"Spruce Canopy","description":"Configuration object for the spruce canopy.","type":"object","additionalProperties":false,"properties":{"lower_offset":{"title":"Lower Offset","description":"Min canopy position offset.","type":"integer","minimum":0},"upper_offset":{"title":"Upper Offset","description":"Max canopy position offset.","type":"integer","minimum":0},"max_radius":{"title":"Max Radius","description":"Max radius of the canopy.","type":"integer","minimum":0},"leaf_block":{"$ref":"#/definitions/CC_leaf_block"}}}}},"CC_leaf_block":{"title":"Leaf Block","description":"The block thata forms the canopy of the tree.","type":"string","$ref":"#/definitions/F"},"CC_trunk_width":{"title":"Trunk Width","description":"The width of the tree trunk.","type":"integer","minimum":1},"CC_height":{"title":"Height","description":"Number of layers for the canopy.","type":"integer","minimum":1},"CC_radius":{"title":"Radius","description":"The radius of the canopy.","type":"integer","minimum":1},"CC_decoration":{"title":"Decoration","description":"Configuration object for the decoration.","type":"object","additionalProperties":false,"properties":{"decoration_chance":{"title":"Decoration Chance","description":"Probability of decorating the trunk.","$ref":"#/definitions/CD"},"decoration_block":{"title":"Decoration Block","description":"The block used for decorating the trunk.","type":"string","$ref":"#/definitions/F"},"num_steps":{"title":"Num Steps","description":"Number of decoration blocks to place.","type":"integer","minimum":0},"step_direction":{"title":"Step Direction","description":"Directions to spread decoration blocks.","type":"string","enum":["down","up","out","away"]}}},"CC_simplify_canopy":{"title":"Simplify Canopy","description":"If true the canopy uses a simple pattern.","type":"boolean"},"CC_trunk_block":{"title":"Trunk Block","description":"The block that forms the tree trunk.","type":"string","$ref":"#/definitions/F"},"CD":{"additionalProperties":false,"type":"object","title":"Chance Information","description":"Chance of something happening represented either as a fraction or a percentage.","anyOf":[{"type":"object","properties":{"numerator":{"type":"number","minimum":1,"description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Numerator"},"denominator":{"type":"number","minimum":1,"description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Denominator"}}},{"type":"number","minimum":0,"maximum":100}]},"CC":{"title":"Tree Feature","description":"'minecraft:tree_feature' will place a tree in the world. A tree consists of a column that is anchored to a base block with set parameters for what it can be placed on and canopy that extends from the column. Trees support multiple types of canopies, trunks, and roots.","type":"object","additionalProperties":false,"required":["description"],"properties":{"description":{"$ref":"#/definitions/C"},"base_block":{"title":"Base Block","oneOf":[{"$ref":"#/definitions/F"},{"type":"array","items":{"title":"Block","$ref":"#/definitions/F"}}]},"base_cluster":{"title":"Base Cluster","description":"Allows you to define a number of clusters for the base of the tree. Used to generate mega tree variants.","type":"object","additionalProperties":false,"required":["may_replace","num_clusters","cluster_radius"],"properties":{"may_replace":{"title":"May Replace","description":"List of blocks that the base cluster of a tree can replace.","type":"array","items":{"$ref":"#/definitions/F"}},"num_clusters":{"title":"Num Clusters","description":"Number of clusters that can be generated.","type":"integer","minimum":1},"cluster_radius":{"title":"Clusters Radius","description":"Radius where the clusters that can be generated.","type":"integer","minimum":0}}},"may_grow_on":{"title":"May Grow On","description":"List of blocks where a tree can grow on.","type":"array","items":{"$ref":"#/definitions/F"}},"may_replace":{"title":"May Reaplce","description":"List of blocks that a tree can replace.","type":"array","items":{"$ref":"#/definitions/F"}},"may_grow_through":{"title":"May Grow Through","description":"List of blocks that a tree can grow through.","type":"array","items":{"$ref":"#/definitions/F"}},"acacia_trunk":{"title":"Acacia Trunk","description":"Configutarion for the acacia trunk.","type":"object","additionalProperties":false,"properties":{"trunk_width":{"$ref":"#/definitions/CC_trunk_width"},"trunk_height":{"title":"Trunk Height","description":"Configuration object for the trunk height.","type":"object","additionalProperties":false,"properties":{"base":{"title":"Base","description":"Min height for the trunk.","type":"integer","minimum":1},"intervals":{"title":"Intervals","description":"Intervals used to randomize the trunk height, the value of each interval will create a random number where (0 <= rand < interval)), and will be added to the height.","type":"array","minItems":1,"items":{"type":"integer","minimum":1}},"min_height_for_canopy":{"title":"Minimum Height For Canopy","description":"Min height where the canopy can be placed.","type":"integer","minimum":1}}},"trunk_lean":{"title":"Trunk Lean","description":"Configuration object for diagonal branches.","type":"object","additionalProperties":false,"properties":{"allow_diagonal_growth":{"title":"Allow Diagonal Growth","description":"If true, diagonal branches will be created.","type":"boolean"},"lean_height":{"title":"Lean Height","description":"Number of blocks below the tree height at which diagonal branches can be created.","$ref":"#/definitions/BA"},"lean_steps":{"title":"Lean Steps","description":"Number of steps taken in X/Z direction while creating a diagonal branch.","$ref":"#/definitions/BA"},"lean_length":{"title":"Lean Length","description":"Length for the diagonal branch in the Y axis.","$ref":"#/definitions/BA"}}},"trunk_block":{"$ref":"#/definitions/CC_trunk_block"},"branches":{"title":"Branches","description":"Configuration object for branches.","type":"object","additionalProperties":false,"properties":{"branch_length":{"title":"Branch Length","description":"Length for the branch in the Y axis.","$ref":"#/definitions/BA"},"branch_position":{"title":"Branch Position","description":"Starting Y position for the branch.","$ref":"#/definitions/BA"},"branch_chance":{"title":"Branch Chance","description":"Probability of creating a branch.","$ref":"#/definitions/CD"},"branch_canopy":{"$ref":"#/definitions/CC_branch_canopy"},"trunk_decoration":{"$ref":"#/definitions/CC_decoration"}}}}},"cherry_trunk":{"title":"Cherry Trunk","description":"Configutarion for the cherry trunk.","type":"object","additionalProperties":false,"properties":{"trunk_block":{"$ref":"#/definitions/CC_trunk_block"},"trunk_height":{"title":"Trunk Height","description":"Configuration object for the trunk height.","type":"object","additionalProperties":false,"properties":{"base":{"title":"Base","description":"Min height for the trunk.","type":"integer","minimum":2},"intervals":{"title":"Intervals","description":"Intervals used to randomize the trunk height, the value of each interval will create a random number where (0 <= rand < interval)), and will be added to the height.","type":"array","minItems":1,"items":{"type":"integer","minimum":1}}}},"branches":{"title":"Branches","description":"Configuration object for branches.","type":"object","additionalProperties":false,"properties":{"tree_type_weights":{"title":"Tree Type Weights","description":"Configuration object to pick a tree variant based on a weighted random number","type":"object","additionalProperties":false,"properties":{"one_branch":{"title":"One Branch","description":"Tree variant with one branch.","type":"integer","minimum":0},"two_branches":{"title":"Two Branches","description":"Tree variant with two branches.","type":"integer","minimum":0},"two_branches_and_trunk":{"title":"Two Branches And Trunk","description":"Tree variant with three branch.","type":"integer","minimum":0}}},"branch_horizontal_length":{"title":"Branch Horizontal Length","description":"Branch length in X/Z axis.","$ref":"#/definitions/BA"},"branch_start_offset_from_top":{"title":"Branch Start Offset From Top","description":"Branch starting position relative to the top of the tree","$ref":"#/definitions/BA"},"branch_end_offset_from_top":{"title":"Branch End Offset From Top","description":"Branch end position relative to the top of the tree","$ref":"#/definitions/BA"},"branch_chance":{"title":"Branch Chance","description":"Probability of creating a branch.","$ref":"#/definitions/CD"},"branch_canopy":{"$ref":"#/definitions/CC_branch_canopy"}}}}},"fallen_trunk":{"title":"Fallen Trunk","description":"Configutarion for the fallen trunk.","type":"object","additionalProperties":false,"properties":{"log_length":{"title":"Log Length","description":"Length of the fallen log.","type":"integer","minimum":0},"stump_height":{"title":"Stump Height","description":"height of the stump.","type":"integer","minimum":0},"height_modifier":{"title":"Height Modifier","description":"Modifier for the length of the fallen log.","type":"integer","minimum":0},"trunk_block":{"$ref":"#/definitions/CC_trunk_block"},"log_decoration_feature":{"title":"Log Decoration Feature","description":"Feature that can be used to decorate the fallen log.","type":"string","$ref":"#/definitions/D"},"trunk_decoration":{"$ref":"#/definitions/CC_decoration"}}},"fancy_trunk":{"title":"Fancy Trunk","description":"Configutarion for the fancy trunk.","type":"object","additionalProperties":false,"properties":{"trunk_height":{"title":"Trunk Height","description":"Configuration object for the trunk height.","type":"object","additionalProperties":false,"properties":{"base":{"title":"Base","description":"Min height for the trunk.","type":"integer","minimum":1},"variance":{"title":"Variance","description":"Modifier for the trunk height.","type":"integer","minimum":1},"scale":{"title":"Scale","description":"Final tree height is multiplied by this scale.","type":"number","maximum":1}}},"trunk_width":{"$ref":"#/definitions/CC_trunk_width"},"branches":{"title":"Branches","description":"Configuration object for branches.","type":"object","additionalProperties":false,"properties":{"slope":{"title":"Slope","description":"Slope for the branch, where 0 is horizontal and 1 is vertical.","type":"number","minimum":0,"maximum":1},"density":{"title":"Density","description":"Density of foliage.","type":"number"},"min_altitude_factor":{"title":"Min Altitude Factor","description":"Min height for branches. Represented by a percentage of the tree height.","type":"number","minimum":0.0,"maximum":1.0}}},"trunk_block":{"$ref":"#/definitions/CC_trunk_block"},"width_scale":{"title":"Width Scale","description":"Scale modifier for the tree radius.","type":"number","minimum":0.0},"foliage_altitude_factor":{"title":"Foliage Altitude Factor","description":"Min height for foliage. Represented by a percentage of the tree height.","type":"number","minimum":0.0,"maximum":1.0}}},"mangrove_trunk":{"title":"Mangrove Trunk","description":"Configutarion for the mangrove trunk.","type":"object","additionalProperties":false,"properties":{"trunk_width":{"$ref":"#/definitions/CC_trunk_width"},"trunk_height":{"title":"Trunk Height","description":"Configuration object for the trunk height.","type":"object","additionalProperties":false,"properties":{"base":{"title":"Base","description":"Min height for the trunk.","type":"integer","minimum":1},"height_rand_a":{"title":"Height Rand A","description":"Tree height modifier A.","type":"integer","minimum":1},"height_rand_b":{"title":"Height Rand B","description":"Tree height modifier B.","type":"integer","minimum":1}}},"trunk_block":{"$ref":"#/definitions/CC_trunk_block"},"branches":{"title":"Branches","description":"Configuration object for branches.","type":"object","additionalProperties":false,"properties":{"branch_length":{"title":"Branch Length","description":"Length for the branch in the Y axis.","$ref":"#/definitions/BA"},"branch_steps":{"title":"Branch Steps","description":"Number of branches to place.","$ref":"#/definitions/BA"},"branch_chance":{"title":"Branch Chance","description":"Probability of creating a branch.","$ref":"#/definitions/CD"}}},"trunk_decoration":{"$ref":"#/definitions/CC_decoration"}}},"mega_trunk":{"title":"Mega Trunk","description":"Configutarion for the mega trunk.","type":"object","additionalProperties":false,"properties":{"trunk_width":{"$ref":"#/definitions/CC_trunk_width"},"trunk_height":{"title":"Trunk Height","description":"Configuration object for the trunk height.","type":"object","additionalProperties":false,"properties":{"base":{"title":"Base","description":"Min height for the trunk.","type":"integer","minimum":1},"intervals":{"title":"Intervals","description":"Intervals used to randomize the trunk height, the value of each interval will create a random number where (0 <= rand < interval)), and will be added to the height.","type":"array","minItems":1,"items":{"type":"integer","minimum":1}},"min_height_for_canopy":{"title":"Minimum Height For Canopy","description":"Min height where the canopy can be placed.","type":"integer","minimum":1}}},"trunk_block":{"$ref":"#/definitions/CC_trunk_block"},"trunk_decoration":{"$ref":"#/definitions/CC_decoration"},"branches":{"title":"Branches","description":"Configuration object for branches.","type":"object","additionalProperties":false,"properties":{"branch_length":{"title":"Branch Length","description":"Length for the branch.","type":"integer","minimum":1},"branch_slope":{"title":"Branch Slope","description":"Slope for the branch, where 0 is horizontal and 1 is vertical.","type":"number","minimum":0,"maximum":1},"branch_interval":{"title":"Branch Interval","description":"Randomized distance between branches.","$ref":"#/definitions/BA"},"branch_altitude_factor":{"title":"Branch Altitude Factor","description":"Altitude at which branches can spawn, relative to the tree height.","type":"object","additionalProperties":false,"properties":{"min":{"title":"Min","description":"Min altitude where branches can spawn.","type":"number","minimum":0.0,"maximum":1.0},"max":{"title":"Max","description":"Max altitude where branches can spawn.","type":"number","minimum":0.0,"maximum":1.0}}},"branch_canopy":{"$ref":"#/definitions/CC_branch_canopy"}}}}},"trunk":{"title":"Trunk","description":"Configutarion for the normal trunk.","type":"object","additionalProperties":false,"properties":{"trunk_height":{"title":"Trunk Height","description":"Defines the height of the trunk.","$ref":"#/definitions/BA"},"height_modifier":{"title":"Height Modifier","description":"Modifier for the height of the trunk.","$ref":"#/definitions/BA"},"can_be_submerged":{"title":"Can Be Submerged","description":"Specifies if the trunk can be submerged.","oneOf":[{"type":"object","additionalProperties":false,"properties":{"max_depth":{"title":"Max Depth","description":"Defines the max depth at which the trunk can be submerged.","type":"integer","minimum":1}}},{"type":"boolean"}]},"trunk_block":{"$ref":"#/definitions/CC_trunk_block"},"trunk_decoration":{"$ref":"#/definitions/CC_decoration"}}},"acacia_canopy":{"title":"Acacia Canopy","description":"Configuration object for the acacia canopy.","type":"object","additionalProperties":false,"properties":{"canopy_size":{"title":"Canopy Size","description":"The size of the canopy.","type":"integer","minimum":1},"leaf_block":{"$ref":"#/definitions/CC_leaf_block"},"simplify_canopy":{"$ref":"#/definitions/CC_simplify_canopy"}}},"canopy":{"title":"Canopy","description":"Configuration object for the normal canopy.","type":"object","additionalProperties":false,"properties":{"canopy_offset":{"title":"Canopy Offset","description":"Canopy position offset relative to the block above the trunk.","type":"object","additionalProperties":false,"properties":{"min":{"title":"Min","description":"Min canopy position offset.","type":"integer"},"max":{"title":"Max","description":"Max canopy position offset.","type":"integer"}}},"min_width":{"title":"Min Width","description":"Min width for the canopy.","type":"integer","minimum":0},"canopy_slope":{"title":"Canopy Slope","description":"Configuration object for the canopy slope.","type":"object","additionalProperties":false,"properties":{"rise":{"title":"Rise","description":"The numerator for the slope fraction.","type":"integer","minimum":1},"run":{"title":"Run","description":"The denominator for the slope fraction.","type":"integer","minimum":1}}},"variation_chance":{"title":"Variation Chance","description":"Determines the chance of creating leaf blocks for every layer of the canopy. Larger numbers create a denser tree.","oneOf":[{"$ref":"#/definitions/CD"},{"type":"array","items":{"$ref":"#/definitions/CD"}}]},"leaf_block":{"$ref":"#/definitions/CC_leaf_block"},"canopy_decoration":{"title":"Canopy Decoration","description":"Configuration object for the canopy decoration.","type":"object","additionalProperties":false,"properties":{"decoration_chance":{"title":"Decoration Chance","description":"Probability of decorating the trunk.","$ref":"#/definitions/CD"},"decoration_block":{"title":"Decoration Block","description":"The block used for decorating the trunk.","type":"string","$ref":"#/definitions/F"},"num_steps":{"title":"Num Steps","description":"Number of decoration blocks to place.","type":"integer","minimum":0},"step_direction":{"title":"Step Direction","description":"Directions to spread decoration blocks.","type":"string","enum":["down","up","out","away"]}}}}},"cherry_canopy":{"title":"Cherry Canopy","description":"Configuration object for the cherry canopy.","type":"object","additionalProperties":false,"properties":{"leaf_block":{"$ref":"#/definitions/CC_leaf_block"},"height":{"$ref":"#/definitions/CC_height"},"radius":{"$ref":"#/definitions/CC_radius"},"trunk_width":{"$ref":"#/definitions/CC_trunk_width"},"wide_bottom_layer_hole_chance":{"title":"Wide Bottom Layer Hole Chance","description":"Probability of the canopy having a hole in the bottom layer.","$ref":"#/definitions/CD"},"corner_hole_chance":{"title":"Corner Hole Chance","description":"Probability of the canopy having a hole in the corner.","$ref":"#/definitions/CD"},"hanging_leaves_chance":{"title":"Hanging Leaves Chance","description":"Probability of the canopy having hanging leaves","$ref":"#/definitions/CD"},"hanging_leaves_extension_chance":{"title":"Hanging Leaves Extension Chance","description":"Probability of hanging leaves extending further down","$ref":"#/definitions/CD"}}},"fancy_canopy":{"title":"Fancy Canopy","description":"Configuration object for the fancy canopy.","type":"object","additionalProperties":false,"properties":{"height":{"$ref":"#/definitions/CC_height"},"radius":{"$ref":"#/definitions/CC_radius"},"leaf_block":{"$ref":"#/definitions/CC_leaf_block"}}},"mangrove_canopy":{"title":"Mangrove Canopy","description":"Configuration object for the mangrove canopy.","type":"object","additionalProperties":false,"properties":{"canopy_height":{"$ref":"#/definitions/CC_height"},"canopy_radius":{"$ref":"#/definitions/CC_radius"},"leaf_placement_attempts":{"title":"Leaf Placement Attempts","description":"Max number of attempts to create leaf blocks.","type":"integer","minimum":1},"leaf_blocks":{"title":"Leaf Blocks","description":"The blocks that form the canopy of the tree","type":"array","minItems":1,"items":[{"$ref":"#/definitions/CC_leaf_block"},{"title":"Weight","description":"Weight used in random selection. Value is relative to other weights in the collection.","type":"number","minimum":0}]},"canopy_decoration":{"$ref":"#/definitions/CC_decoration"},"hanging_block":{"title":"Hanging Block","description":"The block to be used as a hanging block.","$ref":"#/definitions/F"},"hanging_block_placement_chance":{"title":"Hanging Block Placement Chance","description":"Probability of creating a hanging leaf block.","$ref":"#/definitions/CD"}}},"mega_canopy":{"title":"Mega Canopy","description":"Configuration object for the mega canopy.","type":"object","additionalProperties":false,"properties":{"canopy_height":{"$ref":"#/definitions/CC_height"},"base_radius":{"$ref":"#/definitions/CC_radius"},"core_width":{"title":"Core Width","description":"Width of the tree trunk.","type":"number","minimum":1},"simplify_canopy":{"$ref":"#/definitions/CC_simplify_canopy"},"leaf_block":{"$ref":"#/definitions/CC_leaf_block"}}},"mega_pine_canopy":{"title":"Mega Pine Canopy","description":"Configuration object for the mega pine canopy.","type":"object","additionalProperties":false,"properties":{"canopy_height":{"$ref":"#/definitions/CC_height"},"base_radius":{"$ref":"#/definitions/CC_radius","minimum":0},"radius_step_modifier":{"title":"Radius Step Modifier","description":"Modifier for the base radius of the canopy.","type":"number","minimum":0},"core_width":{"title":"Core Width","description":"Width of the tree trunk.","type":"number","minimum":1},"leaf_block":{"$ref":"#/definitions/CC_leaf_block"}}},"pine_canopy":{"title":"Pine Canopy","description":"Configuration object for the pine canopy.","type":"object","additionalProperties":false,"properties":{"height":{"$ref":"#/definitions/CC_height"},"radius":{"$ref":"#/definitions/CC_radius"},"leaf_block":{"$ref":"#/definitions/CC_leaf_block"}}},"roofed_canopy":{"title":"Roofed Canopy","description":"Configuration object for the roofed canopy.","type":"object","additionalProperties":false,"properties":{"canopy_height":{"title":"Canopy Height","description":"Roofed canopies feature a base and a top layer, and an extra cap layer on some occasions, this value controls the number of layers in the middle.","type":"integer","minimum":3},"core_width":{"title":"Core Width","description":"Width of the tree trunk.","type":"integer","minimum":1},"outer_radius":{"title":"Outer Radius","description":"Radius used for the base and top layers.","type":"integer","minimum":0},"inner_radius":{"title":"Inner Radius","description":"Radius used for the middle layers.","type":"integer","minimum":0},"leaf_block":{"$ref":"#/definitions/CC_leaf_block"}}},"spruce_canopy":{"title":"Spruce Canopy","description":"Configuration object for the spruce canopy.","type":"object","additionalProperties":false,"properties":{"lower_offset":{"title":"Lower Offset","description":"Min canopy position offset.","type":"integer","minimum":0},"upper_offset":{"title":"Upper Offset","description":"Max canopy position offset.","type":"integer","minimum":0},"max_radius":{"title":"Max Radius","description":"Max radius of the canopy.","type":"integer","minimum":0},"leaf_block":{"$ref":"#/definitions/CC_leaf_block"}}},"random_spread_canopy":{"title":"Random Spread Canopy","description":"Configuration object for the random spread canopy.","type":"object","additionalProperties":false,"properties":{"canopy_height":{"$ref":"#/definitions/CC_height"},"canopy_radius":{"$ref":"#/definitions/CC_radius"},"leaf_placement_attempts":{"title":"Leaf Placement Attempts","description":"Max number of attempts to create leaf blocks.","type":"integer","minimum":1},"leaf_blocks":{"title":"Leaf Blocks","description":"The blocks that form the canopy of the tree","type":"array","minItems":1,"items":[{"$ref":"#/definitions/CC_leaf_block"},{"title":"Weight","description":"Weight used in random selection. Value is relative to other weights in the collection.","type":"number","minimum":0}]}}},"mangrove_roots":{"title":"Mangrove Roots","description":"Configuration for mangrove roots","type":"object","additionalProperties":false,"properties":{"max_root_width":{"title":"Max Root Width","description":"Max width that the roots can occupy. The width increases up to the max width while moving downwards. When a max width is reached, roots will grow vertically","type":"integer","minimum":1},"max_root_length":{"title":"Max Root Length","description":"Max length that the roots can occupy.","type":"integer","minimum":1},"root_block":{"title":"Root Block","description":"Block used for roots.","type":"string","$ref":"#/definitions/F"},"above_root":{"title":"Above Root","description":"Configuration object for blocks decorating the top of the roots","type":"object","additionalProperties":false,"properties":{"above_root_chance":{"title":"Above Root Chance","description":"Probability of creating a block above the root","$ref":"#/definitions/CD"},"above_root_block":{"title":"Above Root Block","description":"The block placed on the top of the roots.","type":"string","$ref":"#/definitions/F"},"muddy_root_block":{"title":"Muddy Root Block","description":"The block used for muddy roots.","type":"string","$ref":"#/definitions/F"},"mud_block":{"title":"Mud Block","description":"The block used to determine if a muddy root should be placed.","type":"string","$ref":"#/definitions/F"},"y_offset":{"title":"Y Offset","description":"Root offset from the trunk","$ref":"#/definitions/BA"},"roots_may_grow_through":{"title":"Roots May Grow Through","description":"List of blocks that a root can grow through.","type":"array","items":{"$ref":"#/definitions/F"}},"root_decoration":{"$ref":"#/definitions/CC_decoration"}}}}}}},"CE":{"title":"Underwater Cave Carver Feature","description":"'minecraft:underwater_cave_carver_feature' carves a cave through the world in the current chunk, and in every chunk around the current chunk in an 8 radial pattern.This feature will specifically target creating caves only below sea level.\nThis feature will also only work when placed specifically in the pass `pregeneration_pass`.","type":"object","additionalProperties":false,"required":["description"],"properties":{"description":{"$ref":"#/definitions/C"},"fill_with":{"title":"Fill With","description":"Reference to the block to fill the cave with.","$ref":"#/definitions/F"},"width_modifier":{"title":"Width Modifier","description":"How many blocks to increase the cave radius by, from the center point of the cave.","$ref":"#/definitions/G"},"skip_carve_chance":{"title":"Skip Carve Chance","description":"The chance to skip doing the carve (1 / value).","type":"integer","minimum":1},"height_limit":{"title":"Height Limit","description":"The height limit where we attempt to carve","type":"integer"},"y_scale":{"type":"array","title":"Y Scale","description":"The scaling in y","minItems":2,"maxItems":2,"items":[{"type":"number","title":"Min"},{"type":"number","title":"Max"}]},"horizontal_radius_multiplier":{"type":"array","title":"Horizontal Radius Multiplier","minItems":2,"maxItems":2,"items":[{"type":"number","title":"Min"},{"type":"number","title":"Max"}]},"vertical_radius_multiplier":{"type":"array","title":"Vertical Radius Multiplier","minItems":2,"maxItems":2,"items":[{"type":"number","title":"Min"},{"type":"number","title":"Max"}]},"floor_level":{"type":"array","title":"Floor Level","minItems":2,"maxItems":2,"items":[{"type":"number","title":"Min"},{"type":"number","title":"Max"}]},"replace_air_with":{"title":"Replace Air With","description":"Reference to the block to replace air blocks with.","$ref":"#/definitions/F"}}},"CF":{"title":"Vegetation Patch Feature","description":"Feature type `minecraft:vegetation_patch_feature` has not yet been documented.","type":"object","additionalProperties":false,"required":["description","replaceable_blocks","ground_block","horizontal_radius","vegetation_feature"],"properties":{"description":{"$ref":"#/definitions/C"},"replaceable_blocks":{"title":"Replaceable Blocks","description":"Blocks that can be replaced by the ground blocks on the patch.","type":"array","items":{"title":"Replace Block","type":"string","$ref":"#/definitions/F"}},"ground_block":{"title":"Ground Block","description":"Block used to create a base for the vegetation patch.","type":"string","$ref":"#/definitions/F"},"vegetation_feature":{"title":"Vegetation Feature","description":"Feature that will be placed by the patch.","type":"string","$ref":"#/definitions/D","minimum":0,"maximum":1},"surface":{"title":"Surface","description":"Determines if a vegetation patch will grow from the ceiling or the floor.","enum":["floor","ceiling"],"default":"floor"},"depth":{"title":"Depth","description":"Depth of the base covered by the ground blocks.","type":"integer","minimum":0},"extra_deep_block_chance":{"title":"Extra Deep Block Chance","description":"Probability of putting the ground blocks one block deeper. Adds some randomness to the bottom of the patch.","type":"number","minimum":0,"maximum":1},"vertical_range":{"title":"Vertical Range","description":"Vertical range used to determine a suitable surface position for the patch.","type":"integer","minimum":1},"vegetation_chance":{"title":"Vegatation Chance","description":"Probability of spawning vegetation on the patch. Larger numbers create a denser vegetation patch.","type":"number","minimum":0},"horizontal_radius":{"title":"Horizontal Radius","description":"Horizontal area that the vegetation patch will cover.","type":"integer","minimum":1},"extra_edge_column_chance":{"title":"Extra Egde Column Chance","description":"Probability of spawning vegetation on the edge of the patch radius.","type":"number","minimum":0,"maximum":1},"waterlogged":{"title":"Waterlogged","description":"If true, waterlogs the positions occupied by the ground blocks.","type":"boolean","default":false}}},"CG":{"title":"Weighted Random Feature","description":"'minecraft:weighted_random_feature' randomly selects and places a feature based on a weight value. Weights are relative, with higher values making selection more likely.\nSucceeds if: The selected feature is placed.\nFails if: The selected feature fails to be placed.","type":"object","additionalProperties":false,"required":["description","features"],"properties":{"description":{"$ref":"#/definitions/C"},"features":{"title":"Features","description":" Collection of weighted features that placement will select from.","type":"array","minItems":1,"items":{"title":"Feature","description":"Named reference to a feature.","type":"array","items":[{"title":"Feature","description":"Named reference to a feature.","$ref":"#/definitions/D"},{"title":"Weight","description":"Weight used in random selection. Value is relative to other weights in the collection.","type":"number"}]}}}}}} \ No newline at end of file +{"$id":"blockception.minecraft.behavior.features","type":"object","title":"Features","description":"Features are decorations scattered throughout the world. Things such as trees, plants, flowers, springs, ore, and coral are all features. Basically, if it isn't the terrain or a mob, it's probably a feature!","additionalProperties":false,"required":["format_version"],"minProperties":2,"maxProperties":2,"properties":{"format_version":{"$ref":"#/definitions/A"},"minecraft:aggregate_feature":{"$ref":"#/definitions/B"},"minecraft:cave_carver_feature":{"$ref":"#/definitions/E"},"minecraft:fossil_feature":{"$ref":"#/definitions/H"},"minecraft:geode_feature":{"$ref":"#/definitions/I"},"minecraft:growing_plant_feature":{"$ref":"#/definitions/J"},"minecraft:multiface_feature":{"$ref":"#/definitions/BB"},"minecraft:nether_cave_carver_feature":{"$ref":"#/definitions/BC"},"minecraft:ore_feature":{"$ref":"#/definitions/BD"},"minecraft:partially_exposed_blob_feature":{"$ref":"#/definitions/BE"},"minecraft:scatter_feature":{"$ref":"#/definitions/BF"},"minecraft:search_feature":{"$ref":"#/definitions/BG"},"minecraft:sequence_feature":{"$ref":"#/definitions/BH"},"minecraft:single_block_feature":{"$ref":"#/definitions/BI"},"minecraft:snap_to_surface_feature":{"$ref":"#/definitions/BJ"},"minecraft:structure_template_feature":{"$ref":"#/definitions/CA"},"minecraft:surface_relative_threshold_feature":{"$ref":"#/definitions/CB"},"minecraft:tree_feature":{"$ref":"#/definitions/CC"},"minecraft:underwater_cave_carver_feature":{"$ref":"#/definitions/CE"},"minecraft:vegetation_patch_feature":{"$ref":"#/definitions/CF"},"minecraft:weighted_random_feature":{"$ref":"#/definitions/CG"}},"definitions":{"A":{"title":"Format Version","description":"A version that tells minecraft what type of data format can be expected when reading this file.","pattern":"^([1-9]+)\\.([0-9]+)\\.([0-9]+)$","type":"string","default":"1.20.81","examples":["1.20.81","1.20.40","1.19.0","1.12.0","1.10.0","1.8.0"],"defaultSnippets":[{"label":"New Format version","body":"1.${1|8,10,12,17,18,19,20|}.${3|2|0|}"}]},"D":{"description":"A minecraft feature identifier.","examples":["namespace:feature"],"pattern":"^[0-9a-zA-Z:_\\.\\-]+$","title":"Feature Identifier","type":"string","defaultSnippets":[{"label":"New Identifier","body":"$1:$2"}]},"C":{"title":"Description","description":"Feature's description containing the identifier","type":"object","required":["identifier"],"properties":{"identifier":{"title":"Identifier","description":"The name of this feature in the form `namespace_name:feature_name`. `feature_name` must match the filename.","type":"string","$ref":"#/definitions/D"}}},"B":{"title":"Aggregate Feature","description":"'minecraft:aggregate_feature` places a collection of features in an arbitary order. All features in the collection use the same input position. Features should not depend on each other, as there is no guarantee on the order the features will be placed.\n Succeeds if: At lease one feature is placed successfully.\n Fails if: All features fail to be placed.","type":"object","additionalProperties":false,"required":["description","features"],"properties":{"description":{"$ref":"#/definitions/C"},"features":{"title":"Features","description":"Collection of features to be placed one by one. No guarantee of order. All features use the same input position.","type":"array","minItems":1,"items":{"title":"Feature","description":"Feature identifer","type":"string"}},"early_out":{"type":"string","title":"Early Out","description":"Do not continue placing features once either the first success or first failure has occurred.","enum":["none","first_failure","first_success"]}}},"F":{"description":"A minecraft block identifier.","examples":["namespace:block"],"pattern":"^[0-9a-zA-Z:_\\.\\-]+$","title":"Block Identifier","type":"string","defaultSnippets":[{"label":"New Identifier","body":"$1:$2"}]},"G":{"title":"Molang Number","description":"The minecraft molang definition that results in a float.","anyOf":[{"type":"string","minLength":0},{"type":"number"}],"examples":["(1.0)","(0.0)"],"defaultSnippets":[{"label":"New Molang","body":"$1"}]},"E":{"type":"object","title":"Cave Carver Feature","description":"`minecraft:cave_carver_feature` carves a cave through the world in the current chunk, and in every chunk around the current chunk in an 8 radial pattern. This feature will also only work when placed specifically in the pass `pregeneration_pass`.","additionalProperties":false,"required":["description"],"properties":{"description":{"$ref":"#/definitions/C"},"fill_with":{"title":"Fill With","description":"Reference to the block to fill the cave with.","$ref":"#/definitions/F"},"width_modifier":{"title":"Width Modifier","description":"How many blocks to increase the cave radius by, from the center point of the cave.","$ref":"#/definitions/G"},"skip_carve_chance":{"title":"Skip Carve Chance","description":"The chance to skip doing the carve (1 / value).","type":"integer","minimum":1},"height_limit":{"title":"Height Limit","description":"The height limit where we attempt to carve","type":"integer"},"y_scale":{"type":"array","title":"Y Scale","description":"The scaling in y","minItems":2,"maxItems":2,"items":[{"type":"number","title":"Min"},{"type":"number","title":"Max"}]},"horizontal_radius_multiplier":{"type":"array","title":"Horizontal Radius Multiplier","minItems":2,"maxItems":2,"items":[{"type":"number","title":"Min"},{"type":"number","title":"Max"}]},"vertical_radius_multiplier":{"type":"array","title":"Vertical Radius Multiplier","minItems":2,"maxItems":2,"items":[{"type":"number","title":"Min"},{"type":"number","title":"Max"}]},"floor_level":{"type":"array","title":"Floor Level","minItems":2,"maxItems":2,"items":[{"type":"number","title":"Min"},{"type":"number","title":"Max"}]}}},"H":{"type":"object","title":"Fossil Feature","description":"'minecraft:fossil_feature' generates a skeletal structure composed of bone blocks and parametric ore blocks.","additionalProperties":false,"required":["description"],"properties":{"description":{"$ref":"#/definitions/C"},"ore_block":{"title":"Ore Block","description":"Reference to the block to fill the cave with.","$ref":"#/definitions/F"},"max_empty_corners":{"title":"Max Empty Corners","description":"UNDOCUMENTED","type":"integer"}}},"I":{"type":"object","title":"Geode Feature","description":"`minecraft:geode_feature` generates a rock formation to simulate a geode. Each layer of, and block within, the geode can be replaced.\nSucceeds if: At least one block within the geode is placed.\nFails if: All blocks within the geode fail to be placed.","required":["description","max_radius","filler","inner_layer","alternate_inner_layer","use_alternate_layer0_chance","middle_layer","outer_layer","placements_require_layer0_alternate","use_potential_placements_chance","min_distribution_points","max_distribution_points","min_outer_wall_distance","max_outer_wall_distance","min_point_offset","max_point_offset","noise_multiplier","invalid_blocks_threshold","crack_point_offset","generate_crack_chance","base_crack_size"],"additionalProperties":false,"examples":[{"description":{"identifier":"geode_features:geode_feature"},"max_radius":80,"filler":"minecraft:air","inner_layer":"minecraft:stone","alternate_inner_layer":"minecraft:cobblestone","use_alternate_layer0_chance":0.5,"middle_layer":"minecraft:planks","outer_layer":"minecraft:obsidian","inner_placements":["minecraft:glass"],"placements_require_layer0_alternate":true,"use_potential_placements_chance":0.125,"min_distribution_points":3,"max_distribution_points":3,"min_outer_wall_distance":3,"max_outer_wall_distance":3,"min_point_offset":0,"max_point_offset":0,"noise_multiplier":0.025,"invalid_blocks_threshold":10000,"crack_point_offset":0,"generate_crack_chance":0,"base_crack_size":0}],"properties":{"description":{"$ref":"#/definitions/C"},"filler":{"title":"Filler","type":"string","description":"The block to fill the inside of the geode.","$ref":"#/definitions/F"},"inner_layer":{"title":"Inner Layer","type":"string","description":"The block that forms the inside layer of the geode shell.","$ref":"#/definitions/F"},"alternate_inner_layer":{"title":"Alternate Inner Layer","type":"string","description":"The block that has a chance of generating instead of inner_layer.","$ref":"#/definitions/F"},"middle_layer":{"title":"Middle Layer","type":"string","description":"The block that forms the middle layer of the geode shell.","$ref":"#/definitions/F"},"outer_layer":{"title":"Outer Layer","type":"string","description":"The block that forms the outer shell of the geode.","$ref":"#/definitions/F"},"inner_placements":{"title":"Inner Placements","description":"A list of blocks that may be replaced during placement. Omit this field to allow any block to be replaced.","type":"array","minItems":1,"items":{"title":"Block Reference","description":"A block that may be replaced during placement.","$ref":"#/definitions/F"}},"min_outer_wall_distance":{"title":"Minimum Outer Wall Distance","type":"integer","description":"The minimum distance each distribution point must be from the outer wall. [0,10]","minimum":1,"maximum":10},"max_outer_wall_distance":{"title":"Maximum Outer Wall Distance","type":"integer","description":"The maximum distance each distribution point can be from the outer wall. [0,20]","minimum":1,"maximum":20},"min_distribution_points":{"title":"Minimum Distribution Points","type":"integer","description":"The minimum number of points inside the distance field that can get generated. The distance field is the area consisting of all points with a minimum distance to all destribution points. [0,10]","minimum":1,"maximum":10},"max_distribution_points":{"title":"Maximum Distribution Points","type":"integer","description":"The maximum number of points inside the distance field that can get generated. The distance field is the area consisting of all points with a minimum distance to all destribution points. [0,20]","minimum":1,"maximum":20},"min_point_offset":{"title":"Minimum Point Offset","type":"integer","description":"The lowest possible value of random offset applied to the position of each distribution point. [0,10]","minimum":0,"maximum":10},"max_point_offset":{"title":"Maximum Point Offset","type":"integer","description":"The highest possible value of random offset applied to the position of each distribution point. [0,10]","minimum":0,"maximum":10},"max_radius":{"title":"Maximum Radius","type":"integer","description":"The maximum possible radius of the geode generated."},"crack_point_offset":{"title":"Crack Point Offset","type":"integer","description":"An offset applied to each distribution point that forms the geode crack opening. [0,10]","minimum":0,"maximum":10},"generate_crack_chance":{"title":"Generate Crack Chance","type":"number","description":"The likelihood of a geode generating with a crack in its shell. [0,1]","minimum":0.0,"maximum":1.0},"base_crack_size":{"title":"Base Crack Size","type":"number","description":"How large the crack opening of the geode should be when generated. [0,5]","minimum":0.0,"maximum":5.0},"noise_multiplier":{"title":"Noise Multiplier","type":"number","description":"A multiplier applied to the noise that is applied to the distribution points within the geode. Higher = more noisy."},"use_potential_placements_chance":{"title":"Use Potential Placements Chance","type":"number","description":"The likelihood that a special block will be placed on the inside of the geode. [0,1]","minimum":0.0,"maximum":1.0},"use_alternate_layer0_chance":{"title":"Use Alternate Layer0 Chance","type":"number","description":"The likelihood that a block in the innermost layer of the geode will be replaced with an alternate option. [0,1]","minimum":0.0,"maximum":1.0},"placements_require_layer0_alternate":{"title":"Placements Require Layer0 Alternate","type":"boolean","description":" If true, the potential placement block will only be placed on the alternate layer0 blocks that get placed. Potential placement blocks are blocks that depend on the existance of another block to be placed. The latter are the layer0 alternate blocks."},"invalid_blocks_threshold":{"title":"Invalid Blocks Threshold","type":"integer","description":"The threshold of invalid blocks for a geode to have a distribution point in before it aborts generation entirely."}}},"J_range":{"title":"Range","description":"A range.","type":"object","required":["range_min","range_max"],"examples":[{"range_min":8,"range_max":9}],"properties":{"range_max":{"title":"Range Max","type":"integer","description":"The maximum plant height."},"range_min":{"title":"Range Min","type":"integer","description":"The minimum plant height."}}},"J_rangeOrInt":{"oneOf":[{"type":"integer","minimum":0},{"type":"object","$ref":"#/definitions/J_range"}]},"J_blocks_array":{"type":"array","minItems":1,"items":{"title":"Blocks","description":"Collection of weighted block descriptor that placement will select from for the plant.","type":"array","minItems":2,"maxItems":2,"items":[{"title":"Plant Body Block","description":"Plant body block.","type":"string","$ref":"#/definitions/F"},{"title":"Age","$ref":"#/definitions/BA"}]}},"BA":{"title":"Range [A, B]","description":"A described range.","examples":[[0.0,1.0]],"oneOf":[{"type":"number"},{"type":"array","items":[{"type":"number","title":"A","description":"The first value of the range."},{"type":"number","title":"B","description":"The second value of the range."}]},{"type":"object","additionalProperties":false,"properties":{"range_min":{"type":"number","title":"Range Min","description":"The minimum value of the range."},"range_max":{"type":"number","title":"Range Max","description":"The maximum value of the range."}}}]},"J":{"type":"object","title":"Growing Plant Feature","description":"`minecraft:growing_plant_feature` places a growing plant in the world. A growing plant is a column that is anchored either to the ceiling or the floor, based on its growth direction.\nThe growing plant has a body and a head, where the head is the tip of the plant, and the body consists of the remainder blocks.\nThis feature can be used to define growing plants with variable body and head blocks, e.g. Cave Vines.","additionalProperties":false,"required":["description","height_distribution","growth_direction","body_blocks","head_blocks"],"properties":{"description":{"$ref":"#/definitions/C"},"age":{"title":"Age","description":"Age of the head of the plant.","$ref":"#/definitions/J_rangeOrInt"},"height_distribution":{"title":"Height Distribution","description":"Collection of weighted heights that placement will select from.","type":"array","minItems":1,"examples":[[[{"range_min":8,"range_max":9},1],[6,1]]],"items":{"title":"Items","description":"Collection of weighted heights that placement will select from.","type":"array","minItems":2,"maxItems":2,"items":[{"title":"Plant Height","description":"Plant height.","$ref":"#/definitions/J_rangeOrInt"},{"type":"number","title":"Weight","description":"Weight used in random selection. Value is relative to other weights in the collection.","minimum":0}]}},"growth_direction":{"title":"Growth Direction","description":"Direction that the plant grows towards. Valid values: UP and DOWN","type":"string","enum":["UP","DOWN","up","down"]},"body_blocks":{"title":"Body Blocks","description":"Collection of weighted block descriptor that placement will select from for the body of the plant.","$ref":"#/definitions/J_blocks_array"},"head_blocks":{"title":"Head Blocks","description":"Collection of weighted block descriptor that placement will select from for the body of the plant.","$ref":"#/definitions/J_blocks_array"},"allow_water":{"title":"Allow Water","description":"Plant blocks can be placed in water.","type":"boolean"}}},"BB":{"title":"Multiface Feature","description":"`minecraft:multiface_feature` places one or a few multiface blocks on floors/walls/ceilings. Despite the name, any block can be placed by this feature. During placement, existing world blocks are checked to see if this feature can be placed on them based on the list provided in the `can_place_on` field. If no `can_replace_on` field is specified, the `place_block` block can be placed on any existing block.\nThis feature will also try to spread the `place_block` block around the location in world the feature is placed.\nSucceeds if: At least one block is successfully placed.\nFails if: All block placements fail.","type":"object","additionalProperties":false,"required":["description","places_block","search_range","can_place_on_floor","can_place_on_ceiling","can_place_on_wall","chance_of_spreading"],"properties":{"description":{"$ref":"#/definitions/C"},"places_block":{"title":"Places Block","description":"Reference to the block to be placed.","type":"string","$ref":"#/definitions/F"},"search_range":{"title":"Search Range","description":"How far, in blocks, this feature can search for a valid position to place.","type":"integer","minimum":1,"maximum":64},"can_place_on_floor":{"title":"Can Place On Floor","description":"Can this feature be placed on the ground (top face of a block)?.","type":"boolean"},"can_place_on_ceiling":{"title":"Can Place On Ceiling","description":"Can this feature be placed on the ceiling (bottom face of a block)?.","type":"boolean"},"can_place_on_wall":{"title":"Can Place On Wall","description":"Can this feature be placed on the wall (side faces of a block)?.","type":"boolean"},"chance_of_spreading":{"title":"Chance Of Spreading","description":"For each block placed by this feature, how likely will that block spread to another?.","type":"number","minimum":0.0,"maximum":1.0},"can_place_on":{"title":"Can Place On","description":" How far, in blocks, this feature can search for a valid position to place.","type":"array","minItems":1,"items":{"title":"Block","description":" A list of blocks that the block in this feature can be placed on. Omit this field to allow any block to be placed on.","$ref":"#/definitions/F"}}}},"BC":{"title":"Nether Cave Carver Feature","description":"`minecraft:nether_cave_carver_feature` carves a cave through the Nether in the current chunk, and in every chunk around the current chunk in an 8 radial pattern.This feature will also only work when placed specifically in the pass `pregeneration_pass`.","type":"object","additionalProperties":false,"required":["description"],"properties":{"description":{"$ref":"#/definitions/C"},"fill_with":{"title":"Identifier","description":"Reference to the block to fill the cave with.","type":"string","$ref":"#/definitions/F"},"width_modifier":{"title":"Identifier","description":"How many blocks to increase the cave radius by, from the center point of the cave.","$ref":"#/definitions/G"},"skip_carve_chance":{"title":"Skip Carve Chance","description":"The chance to skip doing the carve (1 / value).","type":"integer","minimum":1},"height_limit":{"title":"Height Limit","description":"The height limit where we attempt to carve","type":"integer"},"y_scale":{"type":"array","title":"Y Scale","description":"The scaling in y","minItems":2,"maxItems":2,"items":[{"type":"number","title":"Min"},{"type":"number","title":"Max"}]},"horizontal_radius_multiplier":{"type":"array","title":"Horizontal Radius Multiplier","minItems":2,"maxItems":2,"items":[{"type":"number","title":"Min"},{"type":"number","title":"Max"}]},"vertical_radius_multiplier":{"type":"array","title":"Vertical Radius Multiplier","minItems":2,"maxItems":2,"items":[{"type":"number","title":"Min"},{"type":"number","title":"Max"}]},"floor_level":{"type":"array","title":"Floor Level","minItems":2,"maxItems":2,"items":[{"type":"number","title":"Min"},{"type":"number","title":"Max"}]}}},"BD":{"type":"object","title":"Ore Feature","description":"`minecraft:ore_feature` places a vein of blocks to simulate ore deposits. Despite the name, any block can be placed by this feature. During placement, existing world blocks are checked to see if they can be replaced by the new ore block based on the list provided in the `may_replace` field of a `replace_rules` entry. If no `may_replace` field is specified in a `replace_rule` entry, the ore block can replace any existing block.\nSucceeds if: At least one ore block is successfully placed.\nFails if: All ore block placements fail.","additionalProperties":false,"required":["count","description"],"properties":{"description":{"$ref":"#/definitions/C"},"count":{"title":"Count","description":"The number of blocks to be placed.","type":"number","minimum":1},"replace_rules":{"title":"Replace Rules","description":"Collection of replace rules that will be checked in order of definition. If a rule is resolved, the rest will not be resolved for that block position.","type":"array","minItems":1,"items":{"title":"Repalce Rule","description":"If a rule is resolved, the rest will not be resolved for that block position.","type":"object","required":["places_block"],"properties":{"places_block":{"title":"Places Block","description":"Reference to the block to be placed.","$ref":"#/definitions/F"},"may_replace":{"title":"May Replace","description":"A list of blocks that may be replaced during placement. Omit this field to allow any block to be replaced.","type":"array","minItems":1,"items":{"$ref":"#/definitions/F"}}}}},"discard_chance_on_air_exposure":{"title":"Discard Chance On Air Exposure","description":"Chance of discarding placement if neighboring block is Air.","type":"number","minimum":0,"maximum":1}}},"BE":{"type":"object","title":"Partially Exposed Blob Feature","description":"'minecraft:partially_exposed_blob_feature' generates a blob of the specified block with the specified dimensions For the most part the blob is embedded in the specified surface, however a single side is allowed to be exposed.","additionalProperties":false,"required":["places_block","description","placement_radius_around_floor","placement_probability_per_valid_position"],"properties":{"description":{"$ref":"#/definitions/C"},"places_block":{"title":"Places Block","description":"Reference to the block to be placed.","$ref":"#/definitions/F"},"placement_radius_around_floor":{"title":"Placement Radius Around Floor","description":"Defines the cubic radius of the blob.","type":"number","minimum":1,"maximum":8},"placement_probability_per_valid_position":{"title":"Placement Probability Per Valid Position","description":"The probability of trying to place a block at each position within the placement bounds.","type":"number","minimum":0,"maximum":1},"exposed_face":{"title":"Exposed Face","description":"Defines a block face that is allowed to be exposed to air and/or water. Other faces need to be embedded for blocks to be placed by this feature. Defaults to upwards face","default":"up","enum":["up","down","side","north","east","west","south"]}}},"BF_coord_dist":{"title":"Coordinate","oneOf":[{"$ref":"#/definitions/G","description":"Expression for the coordinate (evaluated each iteration). Mutually exclusive with random distribution object below."},{"type":"object","description":"Distribution for the coordinate (evaluated each iteration). Mutually exclusive with Molang expression above.","additionalProperties":false,"required":["extent","distribution"],"properties":{"distribution":{"title":"Distribution","description":"Type of distribution - uniform random, gaussian (centered in the range), triangle (centered in the range), or grid (either fixed-step or jittered).","type":"string","enum":["uniform","gaussian","inverse_gaussian","triangle","fixed_grid","jittered_grid"]},"step_size":{"title":"Step Size","description":"When the distribution type is grid, defines the distance between steps along this axis.","type":"integer","minimum":1},"grid_offset":{"title":"Step Size","description":"When the distribution type is grid, defines the offset along this axis.","type":"integer","minimum":0},"extent":{"title":"Extent","description":"The lower and upper bound as an offset from the input position","type":"array","items":[{"title":"Lower Bound","$ref":"#/definitions/G","description":"Lower bound (inclusive) of the scatter range, as an offset from the input point to scatter around."},{"title":"Upper Bound","$ref":"#/definitions/G","description":"Upper bound (inclusive) of the scatter range, as an offset from the input point to scatter around."}]}}}]},"BF":{"type":"object","title":"Scatter Feature","description":"`minecraft:scatter_feature` scatters a feature throughout a chunk. The `x`, `y`, and `z` fields are per-coordinate parameters.\nNote that coordinates represent an offset from the input position, not an absolute position. Coordinates may be a single value, a random distribution, or molang expression that resolves to a numeric value. The `coordinate_eval_order` field is provided for finer control of coordinate resolution (particularly when using the `grid` distribution). `iterations` controls how many individual placements should occur if the `scatter_chance` check succeeds. The `scatter_chance` check happens once, so either all placements will run or none will.\nSucceeds if: At least one feature placement succeeds.\nFails if: All feature placements fail.","additionalProperties":false,"required":["description","places_feature","iterations"],"properties":{"description":{"$ref":"#/definitions/C"},"places_feature":{"title":"Places Feature","description":"Named reference of feature to be placed.","type":"string","$ref":"#/definitions/D"},"project_input_to_floor":{"title":"Project Input To Floor","description":"If true, snaps the y-value of the scattered position to the terrain heightmap. If false or unset, y-value is unmodified.","type":"boolean"},"distribution":{"title":"Distribution","description":"Parameters controlling the initial scatter of the feature.","type":"object","additionalProperties":false,"required":["iterations"],"properties":{"coordinate_eval_order":{"title":"Coordinate Eval Order","description":"The order in which coordinates will be evaluated. Should be used when a coordinate depends on another. If omitted, defaults to `xzy`.","type":"string","enum":["xyz","xzy","yxz","yzx","zxy","zyx"]},"iterations":{"title":"Iterations","description":"Number of scattered positions to generate.","$ref":"#/definitions/G"},"scatter_chance":{"title":"Scatter Chance","oneOf":[{"$ref":"#/definitions/G","description":"Probability (0-100] that this scatter will occur. Not evaluated each iteration; either no iterations will run, or all will."},{"type":"object","description":"Probability numerator / denominator that this scatter will occur. Not evaluated each iteration; either no iterations will run, or all will.","additionalProperties":false,"properties":{"numerator":{"title":"Numerator","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","type":"number","minimum":1},"denominator":{"title":"Denominator","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","type":"number","minimum":1}}}]},"x":{"title":"X","$ref":"#/definitions/BF_coord_dist"},"z":{"title":"Y","$ref":"#/definitions/BF_coord_dist"},"y":{"title":"Z","$ref":"#/definitions/BF_coord_dist"}}}}},"BG":{"type":"object","title":"Search Feature","description":"`minecraft:search_feature` sweeps a volume searching for a valid placement location for its referenced feature. The `search_volume` field specifies the axis-aligned bounding box that defines the boundaries of the search. The search sweeps along the axis defined by the `search_axis` field, layer by layer. For example, if `search_axis` = '-x', blocks with greater x values will be checked before blocks with lower x values. Each layer is searched from the bottom-left to the top-right before moving to the next layer along the axis. By default, only one valid position must be found, but this can be altered by specifying the `required_successes` field. If fewer than the required successes are found, no placement will occur.\nSucceeds if: The number of valid positions is equal to the value specified by `required_successes`.\nFails if: The number of valid positions is less than the value specified by `required_successes`.","additionalProperties":false,"required":["description","search_axis"],"properties":{"description":{"$ref":"#/definitions/C"},"places_feature":{"title":"Places Feature","description":"Named reference of feature to be placed.","type":"string","$ref":"#/definitions/D"},"search_volume":{"title":"Places Feature","description":"Axis-aligned bounding box that will be searched for valid placement positions. Expressed as offsets from the input position.","type":"object","additionalProperties":false,"required":["min","max"],"properties":{"max":{"title":"Max","description":"Maximum extent of the bounding volume expressed as [ x, y, z ].","type":"array","items":[{"title":"Maximum X","type":"integer"},{"title":"Maximum Y","type":"integer"},{"title":"Maximum Z","type":"integer"}]},"min":{"title":"Min","description":"Maxium extent of the bounding volume expressed as [ x, y, z ].","type":"array","items":[{"title":"Minimum X","type":"integer"},{"title":"Minimum Y","type":"integer"},{"title":"Minimum Z","type":"integer"}]}}},"search_axis":{"title":"Search Axis","description":"Axis that the search will sweep along through the `search_volume`.","type":"string","enum":["-x","+x","-y","+y","-z","+z"]},"required_successes":{"title":"Required Successes","description":"Number of valid positions the search must find in order to place the referenced feature.","type":"integer","minimum":1}}},"BH":{"title":"Sequence Feature","description":"`minecraft:sequence_feature` places a collection of features sequentially, in the order they appear in data. The output position of the previous feature is used as the input position for the next. For example, a tree feature is placed at (0, 0, 0) and places blocks up to (0, 10, 0). The next feature in the sequence begins at (0, 10, 0).\nSucceeds if: All features in the sequence are successfully placed.\nFails if: Any feature in the sequence fails to be placed. Features that have not yet been placed at the time of failure are skipped.","type":"object","additionalProperties":false,"required":["description","features"],"properties":{"description":{"$ref":"#/definitions/C"},"features":{"title":"Features","description":"List of features to be placed in sequence. The output position of the previous feature is used as the input position to the next.","type":"array","minItems":1,"items":{"title":"Feature","description":"A feature to be placed in sequence. The output position of the previous feature is used as the input position to the next.","$ref":"#/definitions/D"}}}},"BI_block_side":{"oneOf":[{"title":"Block","description":"Reference to the block it may attach to.","type":"string","$ref":"#/definitions/F"},{"type":"array","items":{"title":"Block","description":"Reference to the block it may attach to.","type":"string","$ref":"#/definitions/F"}}]},"BI":{"title":"Single Block Feature","description":"`minecraft:single_block_feature` places a single block in the world. The `may_place_on` and `may_replace` fields are allowlists which specify where the block can be placed. If these fields are omitted, the block can be placed anywhere. The block's internal survivability and placement rules can optionally be enforced with the `enforce_survivability_rules` and `enforce_placement_rules` fields. These rules are specified per-block and are typically designed to produce high quality gameplay or natural behavior. However, enabling this enforcement may make it harder to debug placement failures.\n Succeeds if: The block is successfully placed in the world.\n Fails if: The block fails to be placed.","type":"object","additionalProperties":false,"required":["description","places_block","enforce_placement_rules","enforce_survivability_rules"],"properties":{"description":{"$ref":"#/definitions/C"},"places_block":{"anyOf":[{"title":"Places Block","description":"Reference to the block to be placed.","type":"string","$ref":"#/definitions/F"},{"title":"Places Block","description":" Collection of weighted block references that will be placed.","type":"array","minItems":1,"items":{"title":"Block","description":"Reference to the block to be placed.","type":"array","items":[{"title":"Block","description":"Reference to the block to be placed.","$ref":"#/definitions/F"},{"title":"Weight","description":"Random weight of this block. A higher number will increase the probability of this block to be picked during placement.","type":"number"}]}}]},"enforce_placement_rules":{"title":"Enforce Placement Rules","description":"If true, enforce the block's canPlace check.","type":"boolean"},"enforce_survivability_rules":{"title":"Enforce Survivability Rules","description":"If true, enforce the block's canSurvive check.","type":"boolean"},"randomize_rotation":{"title":"Randomize Rotation","description":"If true, randomizes the block's cardinal orientation.","type":"boolean"},"may_attach_to":{"title":"May Attach To","description":"The list of valid block and block faces the given block may attach to when being placed.","type":"object","additionalProperties":false,"properties":{"min_sides_must_attach":{"title":"Minimum Sides Must Attach","description":"Minimum number of sides that must be attached when being placed.","minimum":1,"maximum":4},"auto_rotate":{"title":"Auto Rotate","description":"Automatically rotate the block to attach sensibly.","type":"boolean"},"top":{"title":"Top","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"},"bottom":{"title":"Bottom","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"},"north":{"title":"North","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"},"south":{"title":"South","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"},"east":{"title":"East","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"},"west":{"title":"West","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"},"all":{"title":"All","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"},"sides":{"title":"Sides","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"},"diagonal":{"title":"Diagonal","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"}}},"may_not_attach_to":{"title":"May Not Attach To","description":"Denylist which specifies where the block can't be placed.","type":"object","additionalProperties":false,"properties":{"top":{"title":"Top","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"},"bottom":{"title":"Bottom","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"},"north":{"title":"North","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"},"south":{"title":"South","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"},"east":{"title":"East","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"},"west":{"title":"West","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"},"all":{"title":"All","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"},"sides":{"title":"Sides","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"},"diagonal":{"title":"Diagonal","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","$ref":"#/definitions/BI_block_side"}}},"may_replace":{"title":"May Replace","description":"A list of blocks that may be replaced during placement. Omit this field to allow any block to be replaced.","type":"array","items":{"title":"Block","description":"A block that may be replaced during placement. Omit this field to allow any block to be replaced.","type":"string","$ref":"#/definitions/F"}}}},"BJ":{"title":"Snap To Surface Feature","description":"`minecraft:snap_to_surface_feature` snaps the y-value of a feature placement pos to the floor or the ceiling within the provided `vertical_search_range`. The placement biome is preserved. \nIf the snap position goes outside of the placement biome, placement will fail.","type":"object","additionalProperties":false,"required":["description","feature_to_snap","vertical_search_range"],"properties":{"description":{"$ref":"#/definitions/C"},"feature_to_snap":{"title":"Feature To Snap","description":"Named reference of feature to be snapped.","type":"string","$ref":"#/definitions/D"},"vertical_search_range":{"title":"Vertical Search Range","description":"Range to search for a floor or ceiling for snaping the feature.","type":"number"},"surface":{"title":"Surface","description":"Defines the surface that the y-value of the placement position will be snapped to. Valid values: `ceiling` and `floor'","type":"string","enum":["ceiling","floor","random_horizontal"]},"allow_air_placement":{"title":"Allow Air Placement","description":"Determines whether the feature can snap through air blocks","type":"boolean","default":true},"allow_underwater_placement":{"title":"Allow Underwater Placement","description":"Determines whether the feature can snap through water blocks","type":"boolean","default":false}}},"CA":{"title":"Structure Template Feature","description":"`minecraft:structure_template_feature` places a structure in the world. The structure must be stored as a .mcstructure file in the `structures` subdirectory of a behavior pack. It is possible to reference structures that are part of other behavior packs, they do not need to come from the same behavior pack as this feature. Constraints can be defined to specify where the structure is allowed to be placed. During placement, the feature will search for a position within the 'adjustment_radius' that satisfies all constraints. If none are found, the structure will not be placed.\nSucceeds if: The structure is placed in the world.\nFails if: The structure fails to be placed within the world.","type":"object","additionalProperties":false,"required":["description","structure_name","constraints"],"properties":{"description":{"$ref":"#/definitions/C"},"structure_name":{"title":"Structure Name","description":"Reference to the structure to be placed.","type":"string"},"adjustment_radius":{"title":"Adjustment Radius","description":"How far the structure is allowed to move when searching for a valid placement position. Search is radial, stopping when the nearest valid position is found. Defaults to 0 if omitted.","type":"integer","minimum":0,"maximum":16},"facing_direction":{"title":"Facing Direction","description":"Direction the structure will face when placed in the world. Defaults to `random` if omitted.","type":"string","enum":["north","south","east","west","random"]},"constraints":{"title":"","description":"Specific constraints that must be satisfied when placing this structure.","type":"object","additionalProperties":false,"properties":{"grounded":{"title":"Grounded","description":"When specified, ensures the structure is on the ground.","type":"object","additionalProperties":false,"properties":{}},"unburied":{"title":"Unburied","description":"When specified, ensures the structure has air above it.","type":"object","additionalProperties":false,"properties":{}},"block_intersection":{"title":"Unburied","description":"When specified, ensures the structure has air above it.","type":"object","additionalProperties":false,"properties":{"block_allowlist":{"title":"Block Allowlist","description":"List of blocks the owning structure is allowed to intersect with.","type":"array","items":{"title":"Block","type":"string","$ref":"#/definitions/F"}},"block_whitelist":{"title":"Block Whitelist","description":"List of blocks the owning structure is allowed to intersect with.","type":"array","items":{"title":"Block","type":"string","$ref":"#/definitions/F"}}}}}}}},"CB":{"type":"object","title":"Surface Relative Threshold Feature","description":"'minecraft:surface_relative_threshold_feature' determines whether the provided position is below the estimated surface level of the world, and places a feature if so.If the provided position is above configured surface or the surface is not available, placement will fail.","additionalProperties":false,"required":["feature_to_place","description"],"properties":{"description":{"$ref":"#/definitions/C"},"feature_to_place":{"title":"Feature To Place","description":"Named reference of feature to be placed.","type":"string","$ref":"#/definitions/D"},"minimum_distance_below_surface":{"title":"Minimum Distance Below Surface","description":"The minimum number of blocks required to be between the estimated surface level and a valid place for this feature.","type":"integer","default":0}}},"CC_branch_canopy":{"title":"Branch Canopy","description":"Configuration object for the canopy.","type":"object","additionalProperties":false,"properties":{"acacia_canopy":{"title":"Acacia Canopy","description":"Configuration object for the acacia canopy.","type":"object","additionalProperties":false,"properties":{"canopy_size":{"title":"Canopy Size","description":"The size of the canopy.","type":"integer","minimum":1},"leaf_block":{"$ref":"#/definitions/CC_leaf_block"},"simplify_canopy":{"$ref":"#/definitions/CC_simplify_canopy"}}},"canopy":{"title":"Canopy","description":"Configuration object for the normal canopy.","type":"object","additionalProperties":false,"properties":{"canopy_offset":{"title":"Canopy Offset","description":"Canopy position offset relative to the block above the trunk.","type":"object","additionalProperties":false,"properties":{"min":{"title":"Min","description":"Min canopy position offset.","type":"integer"},"max":{"title":"Max","description":"Max canopy position offset.","type":"integer"}}},"min_width":{"title":"Min Width","description":"Min width for the canopy.","type":"integer","minimum":0},"canopy_slope":{"title":"Canopy Slope","description":"Configuration object for the canopy slope.","type":"object","additionalProperties":false,"properties":{"rise":{"title":"Rise","description":"The numerator for the slope fraction.","type":"integer","minimum":1},"run":{"title":"Run","description":"The denominator for the slope fraction.","type":"integer","minimum":1}}},"variation_chance":{"title":"Variation Chance","description":"Determines the chance of creating leaf blocks for every layer of the canopy. Larger numbers create a denser tree.","oneOf":[{"$ref":"#/definitions/CD"},{"type":"array","items":{"$ref":"#/definitions/CD"}}]},"leaf_block":{"$ref":"#/definitions/CC_leaf_block"},"canopy_decoration":{"title":"Canopy Decoration","description":"Configuration object for the canopy decoration.","type":"object","additionalProperties":false,"properties":{"decoration_chance":{"title":"Decoration Chance","description":"Probability of decorating the trunk.","$ref":"#/definitions/CD"},"decoration_block":{"title":"Decoration Block","description":"The block used for decorating the trunk.","type":"string","$ref":"#/definitions/F"},"num_steps":{"title":"Num Steps","description":"Number of decoration blocks to place.","type":"integer","minimum":0},"step_direction":{"title":"Step Direction","description":"Directions to spread decoration blocks.","type":"string","enum":["down","up","out","away"]}}}}},"cherry_canopy":{"title":"Cherry Canopy","description":"Configuration object for the cherry canopy.","type":"object","additionalProperties":false,"properties":{"leaf_block":{"$ref":"#/definitions/CC_leaf_block"},"height":{"$ref":"#/definitions/CC_height"},"radius":{"$ref":"#/definitions/CC_radius"},"trunk_width":{"$ref":"#/definitions/CC_trunk_width"},"wide_bottom_layer_hole_chance":{"title":"Wide Bottom Layer Hole Chance","description":"Probability of the canopy having a hole in the bottom layer.","$ref":"#/definitions/CD"},"corner_hole_chance":{"title":"Corner Hole Chance","description":"Probability of the canopy having a hole in the corner.","$ref":"#/definitions/CD"},"hanging_leaves_chance":{"title":"Hanging Leaves Chance","description":"Probability of the canopy having hanging leaves","$ref":"#/definitions/CD"},"hanging_leaves_extension_chance":{"title":"Hanging Leaves Extension Chance","description":"Probability of hanging leaves extending further down","$ref":"#/definitions/CD"}}},"fancy_canopy":{"title":"Fancy Canopy","description":"Configuration object for the fancy canopy.","type":"object","additionalProperties":false,"properties":{"height":{"$ref":"#/definitions/CC_height"},"radius":{"$ref":"#/definitions/CC_radius"},"leaf_block":{"$ref":"#/definitions/CC_leaf_block"}}},"mangrove_canopy":{"title":"Mangrove Canopy","description":"Configuration object for the mangrove canopy.","type":"object","additionalProperties":false,"properties":{"canopy_height":{"$ref":"#/definitions/CC_height"},"canopy_radius":{"$ref":"#/definitions/CC_radius"},"leaf_placement_attempts":{"title":"Leaf Placement Attempts","description":"Max number of attempts to create leaf blocks.","type":"integer","minimum":1},"leaf_blocks":{"title":"Leaf Blocks","description":"The blocks that form the canopy of the tree","type":"array","minItems":1,"items":[{"$ref":"#/definitions/CC_leaf_block"},{"title":"Weight","description":"Weight used in random selection. Value is relative to other weights in the collection.","type":"number","minimum":0}]},"canopy_decoration":{"$ref":"#/definitions/CC_decoration"},"hanging_block":{"title":"Hanging Block","description":"The block to be used as a hanging block.","$ref":"#/definitions/F"},"hanging_block_placement_chance":{"title":"Hanging Block Placement Chance","description":"Probability of creating a hanging leaf block.","$ref":"#/definitions/CD"}}},"mega_canopy":{"title":"Mega Canopy","description":"Configuration object for the mega canopy.","type":"object","additionalProperties":false,"properties":{"canopy_height":{"$ref":"#/definitions/CC_height"},"base_radius":{"$ref":"#/definitions/CC_radius"},"core_width":{"title":"Core Width","description":"Width of the tree trunk.","type":"number","minimum":1},"simplify_canopy":{"$ref":"#/definitions/CC_simplify_canopy"},"leaf_block":{"$ref":"#/definitions/CC_leaf_block"}}},"mega_pine_canopy":{"title":"Mega Pine Canopy","description":"Configuration object for the mega pine canopy.","type":"object","additionalProperties":false,"properties":{"canopy_height":{"$ref":"#/definitions/CC_height"},"base_radius":{"$ref":"#/definitions/CC_radius","minimum":0},"radius_step_modifier":{"title":"Radius Step Modifier","description":"Modifier for the base radius of the canopy.","type":"number","minimum":0},"core_width":{"title":"Core Width","description":"Width of the tree trunk.","type":"number","minimum":1},"leaf_block":{"$ref":"#/definitions/CC_leaf_block"}}},"pine_canopy":{"title":"Pine Canopy","description":"Configuration object for the pine canopy.","type":"object","additionalProperties":false,"properties":{"height":{"$ref":"#/definitions/CC_height"},"radius":{"$ref":"#/definitions/CC_radius"},"leaf_block":{"$ref":"#/definitions/CC_leaf_block"}}},"roofed_canopy":{"title":"Roofed Canopy","description":"Configuration object for the roofed canopy.","type":"object","additionalProperties":false,"properties":{"canopy_height":{"title":"Canopy Height","description":"Roofed canopies feature a base and a top layer, and an extra cap layer on some occasions, this value controls the number of layers in the middle.","type":"integer","minimum":3},"core_width":{"title":"Core Width","description":"Width of the tree trunk.","type":"integer","minimum":1},"outer_radius":{"title":"Outer Radius","description":"Radius used for the base and top layers.","type":"integer","minimum":0},"inner_radius":{"title":"Inner Radius","description":"Radius used for the middle layers.","type":"integer","minimum":0},"leaf_block":{"$ref":"#/definitions/CC_leaf_block"}}},"spruce_canopy":{"title":"Spruce Canopy","description":"Configuration object for the spruce canopy.","type":"object","additionalProperties":false,"properties":{"lower_offset":{"title":"Lower Offset","description":"Min canopy position offset.","type":"integer","minimum":0},"upper_offset":{"title":"Upper Offset","description":"Max canopy position offset.","type":"integer","minimum":0},"max_radius":{"title":"Max Radius","description":"Max radius of the canopy.","type":"integer","minimum":0},"leaf_block":{"$ref":"#/definitions/CC_leaf_block"}}}}},"CC_leaf_block":{"title":"Leaf Block","description":"The block thata forms the canopy of the tree.","type":"string","$ref":"#/definitions/F"},"CC_trunk_width":{"title":"Trunk Width","description":"The width of the tree trunk.","type":"integer","minimum":1},"CC_height":{"title":"Height","description":"Number of layers for the canopy.","type":"integer","minimum":1},"CC_radius":{"title":"Radius","description":"The radius of the canopy.","type":"integer","minimum":1},"CC_decoration":{"title":"Decoration","description":"Configuration object for the decoration.","type":"object","additionalProperties":false,"properties":{"decoration_chance":{"title":"Decoration Chance","description":"Probability of decorating the trunk.","$ref":"#/definitions/CD"},"decoration_block":{"title":"Decoration Block","description":"The block used for decorating the trunk.","type":"string","$ref":"#/definitions/F"},"num_steps":{"title":"Num Steps","description":"Number of decoration blocks to place.","type":"integer","minimum":0},"step_direction":{"title":"Step Direction","description":"Directions to spread decoration blocks.","type":"string","enum":["down","up","out","away"]}}},"CC_simplify_canopy":{"title":"Simplify Canopy","description":"If true the canopy uses a simple pattern.","type":"boolean"},"CC_trunk_block":{"title":"Trunk Block","description":"The block that forms the tree trunk.","type":"string","$ref":"#/definitions/F"},"CD":{"additionalProperties":false,"type":"object","title":"Chance Information","description":"Chance of something happening represented either as a fraction or a percentage.","anyOf":[{"type":"object","properties":{"numerator":{"type":"number","minimum":1,"description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Numerator"},"denominator":{"type":"number","minimum":1,"description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Denominator"}}},{"type":"number","minimum":0,"maximum":100}]},"CC":{"title":"Tree Feature","description":"'minecraft:tree_feature' will place a tree in the world. A tree consists of a column that is anchored to a base block with set parameters for what it can be placed on and canopy that extends from the column. Trees support multiple types of canopies, trunks, and roots.","type":"object","additionalProperties":false,"required":["description"],"properties":{"description":{"$ref":"#/definitions/C"},"base_block":{"title":"Base Block","oneOf":[{"$ref":"#/definitions/F"},{"type":"array","items":{"title":"Block","$ref":"#/definitions/F"}}]},"base_cluster":{"title":"Base Cluster","description":"Allows you to define a number of clusters for the base of the tree. Used to generate mega tree variants.","type":"object","additionalProperties":false,"required":["may_replace","num_clusters","cluster_radius"],"properties":{"may_replace":{"title":"May Replace","description":"List of blocks that the base cluster of a tree can replace.","type":"array","items":{"$ref":"#/definitions/F"}},"num_clusters":{"title":"Num Clusters","description":"Number of clusters that can be generated.","type":"integer","minimum":1},"cluster_radius":{"title":"Clusters Radius","description":"Radius where the clusters that can be generated.","type":"integer","minimum":0}}},"may_grow_on":{"title":"May Grow On","description":"List of blocks where a tree can grow on.","type":"array","items":{"$ref":"#/definitions/F"}},"may_replace":{"title":"May Reaplce","description":"List of blocks that a tree can replace.","type":"array","items":{"$ref":"#/definitions/F"}},"may_grow_through":{"title":"May Grow Through","description":"List of blocks that a tree can grow through.","type":"array","items":{"$ref":"#/definitions/F"}},"acacia_trunk":{"title":"Acacia Trunk","description":"Configutarion for the acacia trunk.","type":"object","additionalProperties":false,"properties":{"trunk_width":{"$ref":"#/definitions/CC_trunk_width"},"trunk_height":{"title":"Trunk Height","description":"Configuration object for the trunk height.","type":"object","additionalProperties":false,"properties":{"base":{"title":"Base","description":"Min height for the trunk.","type":"integer","minimum":1},"intervals":{"title":"Intervals","description":"Intervals used to randomize the trunk height, the value of each interval will create a random number where (0 <= rand < interval)), and will be added to the height.","type":"array","minItems":1,"items":{"type":"integer","minimum":1}},"min_height_for_canopy":{"title":"Minimum Height For Canopy","description":"Min height where the canopy can be placed.","type":"integer","minimum":1}}},"trunk_lean":{"title":"Trunk Lean","description":"Configuration object for diagonal branches.","type":"object","additionalProperties":false,"properties":{"allow_diagonal_growth":{"title":"Allow Diagonal Growth","description":"If true, diagonal branches will be created.","type":"boolean"},"lean_height":{"title":"Lean Height","description":"Number of blocks below the tree height at which diagonal branches can be created.","$ref":"#/definitions/BA"},"lean_steps":{"title":"Lean Steps","description":"Number of steps taken in X/Z direction while creating a diagonal branch.","$ref":"#/definitions/BA"},"lean_length":{"title":"Lean Length","description":"Length for the diagonal branch in the Y axis.","$ref":"#/definitions/BA"}}},"trunk_block":{"$ref":"#/definitions/CC_trunk_block"},"branches":{"title":"Branches","description":"Configuration object for branches.","type":"object","additionalProperties":false,"properties":{"branch_length":{"title":"Branch Length","description":"Length for the branch in the Y axis.","$ref":"#/definitions/BA"},"branch_position":{"title":"Branch Position","description":"Starting Y position for the branch.","$ref":"#/definitions/BA"},"branch_chance":{"title":"Branch Chance","description":"Probability of creating a branch.","$ref":"#/definitions/CD"},"branch_canopy":{"$ref":"#/definitions/CC_branch_canopy"},"trunk_decoration":{"$ref":"#/definitions/CC_decoration"}}}}},"cherry_trunk":{"title":"Cherry Trunk","description":"Configutarion for the cherry trunk.","type":"object","additionalProperties":false,"properties":{"trunk_block":{"$ref":"#/definitions/CC_trunk_block"},"trunk_height":{"title":"Trunk Height","description":"Configuration object for the trunk height.","type":"object","additionalProperties":false,"properties":{"base":{"title":"Base","description":"Min height for the trunk.","type":"integer","minimum":2},"intervals":{"title":"Intervals","description":"Intervals used to randomize the trunk height, the value of each interval will create a random number where (0 <= rand < interval)), and will be added to the height.","type":"array","minItems":1,"items":{"type":"integer","minimum":1}}}},"branches":{"title":"Branches","description":"Configuration object for branches.","type":"object","additionalProperties":false,"properties":{"tree_type_weights":{"title":"Tree Type Weights","description":"Configuration object to pick a tree variant based on a weighted random number","type":"object","additionalProperties":false,"properties":{"one_branch":{"title":"One Branch","description":"Tree variant with one branch.","type":"integer","minimum":0},"two_branches":{"title":"Two Branches","description":"Tree variant with two branches.","type":"integer","minimum":0},"two_branches_and_trunk":{"title":"Two Branches And Trunk","description":"Tree variant with three branch.","type":"integer","minimum":0}}},"branch_horizontal_length":{"title":"Branch Horizontal Length","description":"Branch length in X/Z axis.","$ref":"#/definitions/BA"},"branch_start_offset_from_top":{"title":"Branch Start Offset From Top","description":"Branch starting position relative to the top of the tree","$ref":"#/definitions/BA"},"branch_end_offset_from_top":{"title":"Branch End Offset From Top","description":"Branch end position relative to the top of the tree","$ref":"#/definitions/BA"},"branch_chance":{"title":"Branch Chance","description":"Probability of creating a branch.","$ref":"#/definitions/CD"},"branch_canopy":{"$ref":"#/definitions/CC_branch_canopy"}}}}},"fallen_trunk":{"title":"Fallen Trunk","description":"Configutarion for the fallen trunk.","type":"object","additionalProperties":false,"properties":{"log_length":{"title":"Log Length","description":"Length of the fallen log.","type":"integer","minimum":0},"stump_height":{"title":"Stump Height","description":"height of the stump.","type":"integer","minimum":0},"height_modifier":{"title":"Height Modifier","description":"Modifier for the length of the fallen log.","type":"integer","minimum":0},"trunk_block":{"$ref":"#/definitions/CC_trunk_block"},"log_decoration_feature":{"title":"Log Decoration Feature","description":"Feature that can be used to decorate the fallen log.","type":"string","$ref":"#/definitions/D"},"trunk_decoration":{"$ref":"#/definitions/CC_decoration"}}},"fancy_trunk":{"title":"Fancy Trunk","description":"Configutarion for the fancy trunk.","type":"object","additionalProperties":false,"properties":{"trunk_height":{"title":"Trunk Height","description":"Configuration object for the trunk height.","type":"object","additionalProperties":false,"properties":{"base":{"title":"Base","description":"Min height for the trunk.","type":"integer","minimum":1},"variance":{"title":"Variance","description":"Modifier for the trunk height.","type":"integer","minimum":1},"scale":{"title":"Scale","description":"Final tree height is multiplied by this scale.","type":"number","maximum":1}}},"trunk_width":{"$ref":"#/definitions/CC_trunk_width"},"branches":{"title":"Branches","description":"Configuration object for branches.","type":"object","additionalProperties":false,"properties":{"slope":{"title":"Slope","description":"Slope for the branch, where 0 is horizontal and 1 is vertical.","type":"number","minimum":0,"maximum":1},"density":{"title":"Density","description":"Density of foliage.","type":"number"},"min_altitude_factor":{"title":"Min Altitude Factor","description":"Min height for branches. Represented by a percentage of the tree height.","type":"number","minimum":0.0,"maximum":1.0}}},"trunk_block":{"$ref":"#/definitions/CC_trunk_block"},"width_scale":{"title":"Width Scale","description":"Scale modifier for the tree radius.","type":"number","minimum":0.0},"foliage_altitude_factor":{"title":"Foliage Altitude Factor","description":"Min height for foliage. Represented by a percentage of the tree height.","type":"number","minimum":0.0,"maximum":1.0}}},"mangrove_trunk":{"title":"Mangrove Trunk","description":"Configutarion for the mangrove trunk.","type":"object","additionalProperties":false,"properties":{"trunk_width":{"$ref":"#/definitions/CC_trunk_width"},"trunk_height":{"title":"Trunk Height","description":"Configuration object for the trunk height.","type":"object","additionalProperties":false,"properties":{"base":{"title":"Base","description":"Min height for the trunk.","type":"integer","minimum":1},"height_rand_a":{"title":"Height Rand A","description":"Tree height modifier A.","type":"integer","minimum":1},"height_rand_b":{"title":"Height Rand B","description":"Tree height modifier B.","type":"integer","minimum":1}}},"trunk_block":{"$ref":"#/definitions/CC_trunk_block"},"branches":{"title":"Branches","description":"Configuration object for branches.","type":"object","additionalProperties":false,"properties":{"branch_length":{"title":"Branch Length","description":"Length for the branch in the Y axis.","$ref":"#/definitions/BA"},"branch_steps":{"title":"Branch Steps","description":"Number of branches to place.","$ref":"#/definitions/BA"},"branch_chance":{"title":"Branch Chance","description":"Probability of creating a branch.","$ref":"#/definitions/CD"}}},"trunk_decoration":{"$ref":"#/definitions/CC_decoration"}}},"mega_trunk":{"title":"Mega Trunk","description":"Configutarion for the mega trunk.","type":"object","additionalProperties":false,"properties":{"trunk_width":{"$ref":"#/definitions/CC_trunk_width"},"trunk_height":{"title":"Trunk Height","description":"Configuration object for the trunk height.","type":"object","additionalProperties":false,"properties":{"base":{"title":"Base","description":"Min height for the trunk.","type":"integer","minimum":1},"intervals":{"title":"Intervals","description":"Intervals used to randomize the trunk height, the value of each interval will create a random number where (0 <= rand < interval)), and will be added to the height.","type":"array","minItems":1,"items":{"type":"integer","minimum":1}},"min_height_for_canopy":{"title":"Minimum Height For Canopy","description":"Min height where the canopy can be placed.","type":"integer","minimum":1}}},"trunk_block":{"$ref":"#/definitions/CC_trunk_block"},"trunk_decoration":{"$ref":"#/definitions/CC_decoration"},"branches":{"title":"Branches","description":"Configuration object for branches.","type":"object","additionalProperties":false,"properties":{"branch_length":{"title":"Branch Length","description":"Length for the branch.","type":"integer","minimum":1},"branch_slope":{"title":"Branch Slope","description":"Slope for the branch, where 0 is horizontal and 1 is vertical.","type":"number","minimum":0,"maximum":1},"branch_interval":{"title":"Branch Interval","description":"Randomized distance between branches.","$ref":"#/definitions/BA"},"branch_altitude_factor":{"title":"Branch Altitude Factor","description":"Altitude at which branches can spawn, relative to the tree height.","type":"object","additionalProperties":false,"properties":{"min":{"title":"Min","description":"Min altitude where branches can spawn.","type":"number","minimum":0.0,"maximum":1.0},"max":{"title":"Max","description":"Max altitude where branches can spawn.","type":"number","minimum":0.0,"maximum":1.0}}},"branch_canopy":{"$ref":"#/definitions/CC_branch_canopy"}}}}},"trunk":{"title":"Trunk","description":"Configutarion for the normal trunk.","type":"object","additionalProperties":false,"properties":{"trunk_height":{"title":"Trunk Height","description":"Defines the height of the trunk.","$ref":"#/definitions/BA"},"height_modifier":{"title":"Height Modifier","description":"Modifier for the height of the trunk.","$ref":"#/definitions/BA"},"can_be_submerged":{"title":"Can Be Submerged","description":"Specifies if the trunk can be submerged.","oneOf":[{"type":"object","additionalProperties":false,"properties":{"max_depth":{"title":"Max Depth","description":"Defines the max depth at which the trunk can be submerged.","type":"integer","minimum":1}}},{"type":"boolean"}]},"trunk_block":{"$ref":"#/definitions/CC_trunk_block"},"trunk_decoration":{"$ref":"#/definitions/CC_decoration"}}},"acacia_canopy":{"title":"Acacia Canopy","description":"Configuration object for the acacia canopy.","type":"object","additionalProperties":false,"properties":{"canopy_size":{"title":"Canopy Size","description":"The size of the canopy.","type":"integer","minimum":1},"leaf_block":{"$ref":"#/definitions/CC_leaf_block"},"simplify_canopy":{"$ref":"#/definitions/CC_simplify_canopy"}}},"canopy":{"title":"Canopy","description":"Configuration object for the normal canopy.","type":"object","additionalProperties":false,"properties":{"canopy_offset":{"title":"Canopy Offset","description":"Canopy position offset relative to the block above the trunk.","type":"object","additionalProperties":false,"properties":{"min":{"title":"Min","description":"Min canopy position offset.","type":"integer"},"max":{"title":"Max","description":"Max canopy position offset.","type":"integer"}}},"min_width":{"title":"Min Width","description":"Min width for the canopy.","type":"integer","minimum":0},"canopy_slope":{"title":"Canopy Slope","description":"Configuration object for the canopy slope.","type":"object","additionalProperties":false,"properties":{"rise":{"title":"Rise","description":"The numerator for the slope fraction.","type":"integer","minimum":1},"run":{"title":"Run","description":"The denominator for the slope fraction.","type":"integer","minimum":1}}},"variation_chance":{"title":"Variation Chance","description":"Determines the chance of creating leaf blocks for every layer of the canopy. Larger numbers create a denser tree.","oneOf":[{"$ref":"#/definitions/CD"},{"type":"array","items":{"$ref":"#/definitions/CD"}}]},"leaf_block":{"$ref":"#/definitions/CC_leaf_block"},"canopy_decoration":{"title":"Canopy Decoration","description":"Configuration object for the canopy decoration.","type":"object","additionalProperties":false,"properties":{"decoration_chance":{"title":"Decoration Chance","description":"Probability of decorating the trunk.","$ref":"#/definitions/CD"},"decoration_block":{"title":"Decoration Block","description":"The block used for decorating the trunk.","type":"string","$ref":"#/definitions/F"},"num_steps":{"title":"Num Steps","description":"Number of decoration blocks to place.","type":"integer","minimum":0},"step_direction":{"title":"Step Direction","description":"Directions to spread decoration blocks.","type":"string","enum":["down","up","out","away"]}}}}},"cherry_canopy":{"title":"Cherry Canopy","description":"Configuration object for the cherry canopy.","type":"object","additionalProperties":false,"properties":{"leaf_block":{"$ref":"#/definitions/CC_leaf_block"},"height":{"$ref":"#/definitions/CC_height"},"radius":{"$ref":"#/definitions/CC_radius"},"trunk_width":{"$ref":"#/definitions/CC_trunk_width"},"wide_bottom_layer_hole_chance":{"title":"Wide Bottom Layer Hole Chance","description":"Probability of the canopy having a hole in the bottom layer.","$ref":"#/definitions/CD"},"corner_hole_chance":{"title":"Corner Hole Chance","description":"Probability of the canopy having a hole in the corner.","$ref":"#/definitions/CD"},"hanging_leaves_chance":{"title":"Hanging Leaves Chance","description":"Probability of the canopy having hanging leaves","$ref":"#/definitions/CD"},"hanging_leaves_extension_chance":{"title":"Hanging Leaves Extension Chance","description":"Probability of hanging leaves extending further down","$ref":"#/definitions/CD"}}},"fancy_canopy":{"title":"Fancy Canopy","description":"Configuration object for the fancy canopy.","type":"object","additionalProperties":false,"properties":{"height":{"$ref":"#/definitions/CC_height"},"radius":{"$ref":"#/definitions/CC_radius"},"leaf_block":{"$ref":"#/definitions/CC_leaf_block"}}},"mangrove_canopy":{"title":"Mangrove Canopy","description":"Configuration object for the mangrove canopy.","type":"object","additionalProperties":false,"properties":{"canopy_height":{"$ref":"#/definitions/CC_height"},"canopy_radius":{"$ref":"#/definitions/CC_radius"},"leaf_placement_attempts":{"title":"Leaf Placement Attempts","description":"Max number of attempts to create leaf blocks.","type":"integer","minimum":1},"leaf_blocks":{"title":"Leaf Blocks","description":"The blocks that form the canopy of the tree","type":"array","minItems":1,"items":[{"$ref":"#/definitions/CC_leaf_block"},{"title":"Weight","description":"Weight used in random selection. Value is relative to other weights in the collection.","type":"number","minimum":0}]},"canopy_decoration":{"$ref":"#/definitions/CC_decoration"},"hanging_block":{"title":"Hanging Block","description":"The block to be used as a hanging block.","$ref":"#/definitions/F"},"hanging_block_placement_chance":{"title":"Hanging Block Placement Chance","description":"Probability of creating a hanging leaf block.","$ref":"#/definitions/CD"}}},"mega_canopy":{"title":"Mega Canopy","description":"Configuration object for the mega canopy.","type":"object","additionalProperties":false,"properties":{"canopy_height":{"$ref":"#/definitions/CC_height"},"base_radius":{"$ref":"#/definitions/CC_radius"},"core_width":{"title":"Core Width","description":"Width of the tree trunk.","type":"number","minimum":1},"simplify_canopy":{"$ref":"#/definitions/CC_simplify_canopy"},"leaf_block":{"$ref":"#/definitions/CC_leaf_block"}}},"mega_pine_canopy":{"title":"Mega Pine Canopy","description":"Configuration object for the mega pine canopy.","type":"object","additionalProperties":false,"properties":{"canopy_height":{"$ref":"#/definitions/CC_height"},"base_radius":{"$ref":"#/definitions/CC_radius","minimum":0},"radius_step_modifier":{"title":"Radius Step Modifier","description":"Modifier for the base radius of the canopy.","type":"number","minimum":0},"core_width":{"title":"Core Width","description":"Width of the tree trunk.","type":"number","minimum":1},"leaf_block":{"$ref":"#/definitions/CC_leaf_block"}}},"pine_canopy":{"title":"Pine Canopy","description":"Configuration object for the pine canopy.","type":"object","additionalProperties":false,"properties":{"height":{"$ref":"#/definitions/CC_height"},"radius":{"$ref":"#/definitions/CC_radius"},"leaf_block":{"$ref":"#/definitions/CC_leaf_block"}}},"roofed_canopy":{"title":"Roofed Canopy","description":"Configuration object for the roofed canopy.","type":"object","additionalProperties":false,"properties":{"canopy_height":{"title":"Canopy Height","description":"Roofed canopies feature a base and a top layer, and an extra cap layer on some occasions, this value controls the number of layers in the middle.","type":"integer","minimum":3},"core_width":{"title":"Core Width","description":"Width of the tree trunk.","type":"integer","minimum":1},"outer_radius":{"title":"Outer Radius","description":"Radius used for the base and top layers.","type":"integer","minimum":0},"inner_radius":{"title":"Inner Radius","description":"Radius used for the middle layers.","type":"integer","minimum":0},"leaf_block":{"$ref":"#/definitions/CC_leaf_block"}}},"spruce_canopy":{"title":"Spruce Canopy","description":"Configuration object for the spruce canopy.","type":"object","additionalProperties":false,"properties":{"lower_offset":{"title":"Lower Offset","description":"Min canopy position offset.","type":"integer","minimum":0},"upper_offset":{"title":"Upper Offset","description":"Max canopy position offset.","type":"integer","minimum":0},"max_radius":{"title":"Max Radius","description":"Max radius of the canopy.","type":"integer","minimum":0},"leaf_block":{"$ref":"#/definitions/CC_leaf_block"}}},"random_spread_canopy":{"title":"Random Spread Canopy","description":"Configuration object for the random spread canopy.","type":"object","additionalProperties":false,"properties":{"canopy_height":{"$ref":"#/definitions/CC_height"},"canopy_radius":{"$ref":"#/definitions/CC_radius"},"leaf_placement_attempts":{"title":"Leaf Placement Attempts","description":"Max number of attempts to create leaf blocks.","type":"integer","minimum":1},"leaf_blocks":{"title":"Leaf Blocks","description":"The blocks that form the canopy of the tree","type":"array","minItems":1,"items":[{"$ref":"#/definitions/CC_leaf_block"},{"title":"Weight","description":"Weight used in random selection. Value is relative to other weights in the collection.","type":"number","minimum":0}]}}},"mangrove_roots":{"title":"Mangrove Roots","description":"Configuration for mangrove roots","type":"object","additionalProperties":false,"properties":{"max_root_width":{"title":"Max Root Width","description":"Max width that the roots can occupy. The width increases up to the max width while moving downwards. When a max width is reached, roots will grow vertically","type":"integer","minimum":1},"max_root_length":{"title":"Max Root Length","description":"Max length that the roots can occupy.","type":"integer","minimum":1},"root_block":{"title":"Root Block","description":"Block used for roots.","type":"string","$ref":"#/definitions/F"},"above_root":{"title":"Above Root","description":"Configuration object for blocks decorating the top of the roots","type":"object","additionalProperties":false,"properties":{"above_root_chance":{"title":"Above Root Chance","description":"Probability of creating a block above the root","$ref":"#/definitions/CD"},"above_root_block":{"title":"Above Root Block","description":"The block placed on the top of the roots.","type":"string","$ref":"#/definitions/F"},"muddy_root_block":{"title":"Muddy Root Block","description":"The block used for muddy roots.","type":"string","$ref":"#/definitions/F"},"mud_block":{"title":"Mud Block","description":"The block used to determine if a muddy root should be placed.","type":"string","$ref":"#/definitions/F"},"y_offset":{"title":"Y Offset","description":"Root offset from the trunk","$ref":"#/definitions/BA"},"roots_may_grow_through":{"title":"Roots May Grow Through","description":"List of blocks that a root can grow through.","type":"array","items":{"$ref":"#/definitions/F"}},"root_decoration":{"$ref":"#/definitions/CC_decoration"}}}}}}},"CE":{"title":"Underwater Cave Carver Feature","description":"'minecraft:underwater_cave_carver_feature' carves a cave through the world in the current chunk, and in every chunk around the current chunk in an 8 radial pattern.This feature will specifically target creating caves only below sea level.\nThis feature will also only work when placed specifically in the pass `pregeneration_pass`.","type":"object","additionalProperties":false,"required":["description"],"properties":{"description":{"$ref":"#/definitions/C"},"fill_with":{"title":"Fill With","description":"Reference to the block to fill the cave with.","$ref":"#/definitions/F"},"width_modifier":{"title":"Width Modifier","description":"How many blocks to increase the cave radius by, from the center point of the cave.","$ref":"#/definitions/G"},"skip_carve_chance":{"title":"Skip Carve Chance","description":"The chance to skip doing the carve (1 / value).","type":"integer","minimum":1},"height_limit":{"title":"Height Limit","description":"The height limit where we attempt to carve","type":"integer"},"y_scale":{"type":"array","title":"Y Scale","description":"The scaling in y","minItems":2,"maxItems":2,"items":[{"type":"number","title":"Min"},{"type":"number","title":"Max"}]},"horizontal_radius_multiplier":{"type":"array","title":"Horizontal Radius Multiplier","minItems":2,"maxItems":2,"items":[{"type":"number","title":"Min"},{"type":"number","title":"Max"}]},"vertical_radius_multiplier":{"type":"array","title":"Vertical Radius Multiplier","minItems":2,"maxItems":2,"items":[{"type":"number","title":"Min"},{"type":"number","title":"Max"}]},"floor_level":{"type":"array","title":"Floor Level","minItems":2,"maxItems":2,"items":[{"type":"number","title":"Min"},{"type":"number","title":"Max"}]},"replace_air_with":{"title":"Replace Air With","description":"Reference to the block to replace air blocks with.","$ref":"#/definitions/F"}}},"CF":{"title":"Vegetation Patch Feature","description":"Feature type `minecraft:vegetation_patch_feature` has not yet been documented.","type":"object","additionalProperties":false,"required":["description","replaceable_blocks","ground_block","horizontal_radius","vegetation_feature"],"properties":{"description":{"$ref":"#/definitions/C"},"replaceable_blocks":{"title":"Replaceable Blocks","description":"Blocks that can be replaced by the ground blocks on the patch.","type":"array","items":{"title":"Replace Block","type":"string","$ref":"#/definitions/F"}},"ground_block":{"title":"Ground Block","description":"Block used to create a base for the vegetation patch.","type":"string","$ref":"#/definitions/F"},"vegetation_feature":{"title":"Vegetation Feature","description":"Feature that will be placed by the patch.","type":"string","$ref":"#/definitions/D","minimum":0,"maximum":1},"surface":{"title":"Surface","description":"Determines if a vegetation patch will grow from the ceiling or the floor.","enum":["floor","ceiling"],"default":"floor"},"depth":{"title":"Depth","description":"Depth of the base covered by the ground blocks.","type":"integer","minimum":0},"extra_deep_block_chance":{"title":"Extra Deep Block Chance","description":"Probability of putting the ground blocks one block deeper. Adds some randomness to the bottom of the patch.","type":"number","minimum":0,"maximum":1},"vertical_range":{"title":"Vertical Range","description":"Vertical range used to determine a suitable surface position for the patch.","type":"integer","minimum":1},"vegetation_chance":{"title":"Vegatation Chance","description":"Probability of spawning vegetation on the patch. Larger numbers create a denser vegetation patch.","type":"number","minimum":0},"horizontal_radius":{"title":"Horizontal Radius","description":"Horizontal area that the vegetation patch will cover.","type":"integer","minimum":1},"extra_edge_column_chance":{"title":"Extra Egde Column Chance","description":"Probability of spawning vegetation on the edge of the patch radius.","type":"number","minimum":0,"maximum":1},"waterlogged":{"title":"Waterlogged","description":"If true, waterlogs the positions occupied by the ground blocks.","type":"boolean","default":false}}},"CG":{"title":"Weighted Random Feature","description":"'minecraft:weighted_random_feature' randomly selects and places a feature based on a weight value. Weights are relative, with higher values making selection more likely.\nSucceeds if: The selected feature is placed.\nFails if: The selected feature fails to be placed.","type":"object","additionalProperties":false,"required":["description","features"],"properties":{"description":{"$ref":"#/definitions/C"},"features":{"title":"Features","description":" Collection of weighted features that placement will select from.","type":"array","minItems":1,"items":{"title":"Feature","description":"Named reference to a feature.","type":"array","items":[{"title":"Feature","description":"Named reference to a feature.","$ref":"#/definitions/D"},{"title":"Weight","description":"Weight used in random selection. Value is relative to other weights in the collection.","type":"number"}]}}}}}} \ No newline at end of file