{"$schema":"http://json-schema.org/draft-07/schema#","title":"NTM 1.0.4 configured features","type":"object","properties":{"type":{"type":"string","anyOf":[{"enum":["hbm:bedrock_oil_deposit","hbm:bedrock_ore","hbm:coltan_deposit","hbm:depth_deposit","hbm:nether_surface","hbm:oil_bubble","hbm:ore_cave","hbm:stratum","hbm:stratum_3d","hbm:windowed_ore","hbmspace:basalt_spikes","hbmspace:plateau","hbmspace:rubber_plant","hbmspace:seismic_crack","hbmspace:ttree","hbmspace:voronoi_plates","hbmspace:water_coral","hbmspace:water_plant"]},{"type":"string"}]}},"required":["type"],"allOf":[{"if":{"properties":{"type":{"const":"hbm:bedrock_oil_deposit"}},"required":["type"]},"then":{"type":"object","properties":{"config":{"type":"object","properties":{"core":{"type":"object","properties":{"Name":{"description":"Registered block ID.","markdownDescription":"Registered block ID."},"Properties":{"description":"Block-state property names and string values.","markdownDescription":"Block-state property names and string values."}},"required":["Name"],"description":"Block state placed in the deposit.","markdownDescription":"Block state placed in the deposit."},"replaceable":{"type":"object","properties":{"predicate_type":{"description":"Vanilla rule-test type.","markdownDescription":"Vanilla rule-test type."},"tag":{"description":"Block tag for tag_match.","markdownDescription":"Block tag for tag_match."},"block":{"description":"Block ID for block_match.","markdownDescription":"Block ID for block_match."}},"required":["predicate_type"],"description":"Vanilla rule test selecting blocks replaced in addition to bedrock.","markdownDescription":"Vanilla rule test selecting blocks replaced in addition to bedrock."},"surface_scars":{"type":"array","items":{"type":"object","properties":{"target":{"type":"object","properties":{"predicate_type":{"description":"Vanilla rule-test type.","markdownDescription":"Vanilla rule-test type."},"tag":{"description":"Block tag for tag_match.","markdownDescription":"Block tag for tag_match."},"block":{"description":"Block ID for block_match.","markdownDescription":"Block ID for block_match."}},"required":["predicate_type"],"description":"Vanilla rule test selecting replaceable blocks.","markdownDescription":"Vanilla rule test selecting replaceable blocks."},"state":{"type":"object","properties":{"Name":{"description":"Registered block ID.","markdownDescription":"Registered block ID."},"Properties":{"description":"Block-state property names and string values.","markdownDescription":"Block-state property names and string values."}},"required":["Name"],"description":"Block state placed at a matching target.","markdownDescription":"Block state placed at a matching target."}},"required":["target","state"]},"description":"Additional surface-scar replacements, tried in order after the built-in soil, sand and stone rules; the first matching target supplies its state. Default empty.","markdownDescription":"Additional surface-scar replacements, tried in order after the built-in soil, sand and stone rules; the first matching target supplies its state. Default empty."}},"required":["core","replaceable"]}},"required":["config"]}},{"if":{"properties":{"type":{"const":"hbm:bedrock_ore"}},"required":["type"]},"then":{"type":"object","properties":{"config":{"type":"object","properties":{"auto":{"description":"Uses the world's bedrock-ore density field to choose resource tier when true.","markdownDescription":"Uses the world's bedrock-ore density field to choose resource tier when true."},"depth_rock":{"type":"object","properties":{"Name":{"description":"Registered block ID.","markdownDescription":"Registered block ID."},"Properties":{"description":"Block-state property names and string values.","markdownDescription":"Block-state property names and string values."}},"required":["Name"],"description":"Block state placed around the bedrock node.","markdownDescription":"Block state placed around the bedrock node."},"entries":{"type":"array","items":{"type":"object","properties":{"item":{"description":"Item yielded by the selected resource.","markdownDescription":"Item yielded by the selected resource."},"count":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Item count in the selected resource; use the item stack limit.\n\nRange: i32","markdownDescription":"Item count in the selected resource; use the item stack limit.\n\nRange: `i32`"},"color":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Integer display tint.\n\nRange: i32","markdownDescription":"Integer display tint.\n\nRange: `i32`"},"tier":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Extraction tier.\n\nRange: i32","markdownDescription":"Extraction tier.\n\nRange: `i32`"},"weight":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Relative selection weight; positive total at most i32::MAX.\n\nRange: i32","markdownDescription":"Relative selection weight; positive total at most `i32::MAX`.\n\nRange: `i32`"}},"required":["item","count","color","tier","weight"]},"description":"Weighted resource choices used when auto is false.","markdownDescription":"Weighted resource choices used when auto is false."},"host":{"type":"object","properties":{"predicate_type":{"description":"Vanilla rule-test type.","markdownDescription":"Vanilla rule-test type."},"tag":{"description":"Block tag for tag_match.","markdownDescription":"Block tag for tag_match."},"block":{"description":"Block ID for block_match.","markdownDescription":"Block ID for block_match."}},"required":["predicate_type"],"description":"Vanilla rule test selecting host blocks replaced by depth rock; defaults to a tag match on minecraft:base_stone_overworld.","markdownDescription":"Vanilla rule test selecting host blocks replaced by depth rock; defaults to a tag match on `minecraft:base_stone_overworld`."}},"required":["auto","depth_rock","entries"]}},"required":["config"]}},{"if":{"properties":{"type":{"const":"hbm:coltan_deposit"}},"required":["type"]},"then":{"type":"object","properties":{"config":{"type":"object","properties":{"base_range":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Placement reach for the first band; later bands divide it by their index.\n\nRange: i32","markdownDescription":"Placement reach for the first band; later bands divide it by their index.\n\nRange: `i32`"},"min_y":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Lowest sampled Y.\n\nRange: i32","markdownDescription":"Lowest sampled Y.\n\nRange: `i32`"},"outer_attempts":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Number of outer placement attempts per chunk; use a positive value to place veins.\n\nRange: i32","markdownDescription":"Number of outer placement attempts per chunk; use a positive value to place veins.\n\nRange: `i32`"},"rings":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Number of narrowing placement bands per attempt; use a positive value.\n\nRange: i32","markdownDescription":"Number of narrowing placement bands per attempt; use a positive value.\n\nRange: `i32`"},"spread":{"type":"number","minimum":-1.7976931348623157e+308,"maximum":1.7976931348623157e+308,"description":"Scale of the seed-derived deposit centre.\n\nRange: finite f64","markdownDescription":"Scale of the seed-derived deposit centre.\n\nRange: finite `f64`"},"vein":{"type":"object","properties":{"size":{"type":"number","minimum":0,"maximum":64,"description":"Maximum vein size.\n\nRange: [0, 64]","markdownDescription":"Maximum vein size.\n\nRange: [0, 64]"},"discard_chance_on_air_exposure":{"type":"number","minimum":0,"maximum":1,"description":"Chance to discard ore exposed to air.\n\nRange: [0, 1]","markdownDescription":"Chance to discard ore exposed to air.\n\nRange: [0, 1]"},"targets":{"type":"array","items":{"type":"object","properties":{"target":{"description":"Vanilla rule test selecting replaceable blocks.","markdownDescription":"Vanilla rule test selecting replaceable blocks."},"state":{"description":"Block state placed in the vein.","markdownDescription":"Block state placed in the vein."}},"required":["target","state"]},"description":"Replacement targets and states.","markdownDescription":"Replacement targets and states."}},"required":["size","discard_chance_on_air_exposure","targets"],"description":"Vanilla ore configuration placed by an accepted attempt.","markdownDescription":"Vanilla ore configuration placed by an accepted attempt."},"y_range":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Height of the sampled Y interval.\n\nRange: [1, i32::MAX]","markdownDescription":"Height of the sampled Y interval.\n\nRange: [1, `i32::MAX`]"}},"required":["base_range","min_y","outer_attempts","rings","spread","vein","y_range"]}},"required":["config"]}},{"if":{"properties":{"type":{"const":"hbm:depth_deposit"}},"required":["type"]},"then":{"type":"object","properties":{"config":{"type":"object","properties":{"core":{"type":"object","properties":{"Name":{"description":"Registered block ID.","markdownDescription":"Registered block ID."},"Properties":{"description":"Block-state property names and string values.","markdownDescription":"Block-state property names and string values."}},"required":["Name"],"description":"Block state placed near the deposit centre.","markdownDescription":"Block state placed near the deposit centre."},"fill":{"type":"number","minimum":-3.4028234663852886e+38,"maximum":3.4028234663852886e+38,"description":"Core radius as a fraction of size; use [0, 1].\n\nRange: finite f32","markdownDescription":"Core radius as a fraction of `size`; use [0, 1].\n\nRange: finite `f32`"},"filler":{"type":"object","properties":{"Name":{"description":"Registered block ID.","markdownDescription":"Registered block ID."},"Properties":{"description":"Block-state property names and string values.","markdownDescription":"Block-state property names and string values."}},"required":["Name"],"description":"Block state placed in the outer shell.","markdownDescription":"Block state placed in the outer shell."},"replaceable":{"type":"object","properties":{"predicate_type":{"description":"Vanilla rule-test type.","markdownDescription":"Vanilla rule-test type."},"tag":{"description":"Block tag for tag_match.","markdownDescription":"Block tag for tag_match."},"block":{"description":"Block ID for block_match.","markdownDescription":"Block ID for block_match."}},"required":["predicate_type"],"description":"Vanilla rule test selecting blocks to replace.","markdownDescription":"Vanilla rule test selecting blocks to replace."},"size":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Outer deposit radius in blocks; use a nonnegative value for placement.\n\nRange: i32","markdownDescription":"Outer deposit radius in blocks; use a nonnegative value for placement.\n\nRange: `i32`"}},"required":["core","fill","filler","replaceable","size"]}},"required":["config"]}},{"if":{"properties":{"type":{"const":"hbm:nether_surface"}},"required":["type"]},"then":{"type":"object","properties":{"config":{"type":"object","properties":{"attempts":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Number of sampled X/Z columns per chunk.\n\nRange: i32","markdownDescription":"Number of sampled X/Z columns per chunk.\n\nRange: `i32`"},"d_range":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Range added to the starting depth; must be positive when attempts is positive.\n\nRange: i32","markdownDescription":"Range added to the starting depth; must be positive when `attempts` is positive.\n\nRange: `i32`"},"min_d":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Lowest sampled starting depth.\n\nRange: i32","markdownDescription":"Lowest sampled starting depth.\n\nRange: `i32`"},"scan_down":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Distance scanned below each starting depth.\n\nRange: i32","markdownDescription":"Distance scanned below each starting depth.\n\nRange: `i32`"},"state":{"type":"object","properties":{"Name":{"description":"Registered block ID.","markdownDescription":"Registered block ID."},"Properties":{"description":"Block-state property names and string values.","markdownDescription":"Block-state property names and string values."}},"required":["Name"],"description":"Block state placed over exposed netherrack.","markdownDescription":"Block state placed over exposed netherrack."}},"required":["attempts","d_range","min_d","scan_down","state"]}},"required":["config"]}},{"if":{"properties":{"type":{"const":"hbm:oil_bubble"}},"required":["type"]},"then":{"type":"object","properties":{"config":{"type":"object","properties":{"core":{"type":"object","properties":{"Name":{"description":"Registered block ID.","markdownDescription":"Registered block ID."},"Properties":{"description":"Block-state property names and string values.","markdownDescription":"Block-state property names and string values."}},"required":["Name"],"description":"Block state filling the bubble.","markdownDescription":"Block state filling the bubble."},"fuzzy":{"description":"Adds random variation to the bubble boundary.","markdownDescription":"Adds random variation to the bubble boundary."},"max_size":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Exclusive upper radius bound; must exceed min_size.\n\nRange: [1, i32::MAX]","markdownDescription":"Exclusive upper radius bound; must exceed `min_size`.\n\nRange: [1, `i32::MAX`]"},"min_size":{"type":"integer","minimum":0,"maximum":2147483647,"description":"Minimum sampled radius.\n\nRange: [0, i32::MAX]","markdownDescription":"Minimum sampled radius.\n\nRange: [0, `i32::MAX`]"},"replaceable":{"type":"object","properties":{"predicate_type":{"description":"Vanilla rule-test type.","markdownDescription":"Vanilla rule-test type."},"tag":{"description":"Block tag for tag_match.","markdownDescription":"Block tag for tag_match."},"block":{"description":"Block ID for block_match.","markdownDescription":"Block ID for block_match."}},"required":["predicate_type"],"description":"Vanilla rule test selecting blocks to replace.","markdownDescription":"Vanilla rule test selecting blocks to replace."}},"required":["core","fuzzy","max_size","min_size","replaceable"]}},"required":["config"]}},{"if":{"properties":{"type":{"const":"hbm:ore_cave"}},"required":["type"]},"then":{"type":"object","properties":{"config":{"type":"object","properties":{"domain":{"description":"Noise-domain ID shaping the cave.","markdownDescription":"Noise-domain ID shaping the cave."},"max_range":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Upper range before cave half-height folds back.\n\nRange: i32","markdownDescription":"Upper range before cave half-height folds back.\n\nRange: `i32`"},"ore":{"type":"object","properties":{"Name":{"description":"Registered block ID.","markdownDescription":"Registered block ID."},"Properties":{"description":"Block-state property names and string values.","markdownDescription":"Block-state property names and string values."}},"required":["Name"],"description":"Ore block state used in the cave wall.","markdownDescription":"Ore block state used in the cave wall."},"range_mult":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Converts noise above the threshold into vertical half-height.\n\nRange: i32","markdownDescription":"Converts noise above the threshold into vertical half-height.\n\nRange: `i32`"},"replaceable":{"type":"object","properties":{"predicate_type":{"description":"Vanilla rule-test type.","markdownDescription":"Vanilla rule-test type."},"tag":{"description":"Block tag for tag_match.","markdownDescription":"Block tag for tag_match."},"block":{"description":"Block ID for block_match.","markdownDescription":"Block ID for block_match."}},"required":["predicate_type"],"description":"Vanilla rule test selecting blocks to replace.","markdownDescription":"Vanilla rule test selecting blocks to replace."},"stalactite":{"type":"object","properties":{"Name":{"description":"Registered block ID.","markdownDescription":"Registered block ID."},"Properties":{"description":"Block-state property names and string values.","markdownDescription":"Block-state property names and string values."}},"required":["Name"],"description":"Ceiling spike block state; omit to generate no ceiling spikes.","markdownDescription":"Ceiling spike block state; omit to generate no ceiling spikes."},"stalagmite":{"type":"object","properties":{"Name":{"description":"Registered block ID.","markdownDescription":"Registered block ID."},"Properties":{"description":"Block-state property names and string values.","markdownDescription":"Block-state property names and string values."}},"required":["Name"],"description":"Floor spike block state; omit to generate no floor spikes.","markdownDescription":"Floor spike block state; omit to generate no floor spikes."},"threshold":{"type":"number","minimum":-1.7976931348623157e+308,"maximum":1.7976931348623157e+308,"description":"Minimum horizontal noise value for a cave column.\n\nRange: finite f64","markdownDescription":"Minimum horizontal noise value for a cave column.\n\nRange: finite `f64`"},"y_level":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Centre Y of the cave band.\n\nRange: i32","markdownDescription":"Centre Y of the cave band.\n\nRange: `i32`"},"fluid":{"type":"object","properties":{"Name":{"description":"Registered block ID.","markdownDescription":"Registered block ID."},"Properties":{"description":"Block-state property names and string values.","markdownDescription":"Block-state property names and string values."}},"required":["Name"],"description":"Fluid block state placed in enclosed pockets.","markdownDescription":"Fluid block state placed in enclosed pockets."},"exposed_by_fluid":{"type":"boolean","description":"Treats a neighboring fluid block as an exposed cave wall, like air or a cave spike; default false.","markdownDescription":"Treats a neighboring fluid block as an exposed cave wall, like air or a cave spike; default false."}},"required":["domain","max_range","ore","range_mult","replaceable","threshold","y_level"]}},"required":["config"]}},{"if":{"properties":{"type":{"const":"hbm:stratum"}},"required":["type"]},"then":{"type":"object","properties":{"config":{"type":"object","properties":{"density":{"type":"number","minimum":-3.4028234663852886e+38,"maximum":3.4028234663852886e+38,"description":"Chance of placing each eligible block; use [0, 1].\n\nRange: finite f32","markdownDescription":"Chance of placing each eligible block; use [0, 1].\n\nRange: finite `f32`"},"domain":{"description":"Noise-domain ID used to shape the layer.","markdownDescription":"Noise-domain ID used to shape the layer."},"max_range":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Upper range before the layer thickness folds back.\n\nRange: i32","markdownDescription":"Upper range before the layer thickness folds back.\n\nRange: `i32`"},"range_mult":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Converts noise above the threshold into vertical half-thickness.\n\nRange: i32","markdownDescription":"Converts noise above the threshold into vertical half-thickness.\n\nRange: `i32`"},"replaceable":{"type":"object","properties":{"predicate_type":{"description":"Vanilla rule-test type.","markdownDescription":"Vanilla rule-test type."},"tag":{"description":"Block tag for tag_match.","markdownDescription":"Block tag for tag_match."},"block":{"description":"Block ID for block_match.","markdownDescription":"Block ID for block_match."}},"required":["predicate_type"],"description":"Vanilla rule test selecting blocks the layer can replace.","markdownDescription":"Vanilla rule test selecting blocks the layer can replace."},"scale":{"type":"number","minimum":-1.7976931348623157e+308,"maximum":1.7976931348623157e+308,"description":"Horizontal noise sampling scale.\n\nRange: finite f64","markdownDescription":"Horizontal noise sampling scale.\n\nRange: finite `f64`"},"state":{"type":"object","properties":{"Name":{"description":"Registered block ID.","markdownDescription":"Registered block ID."},"Properties":{"description":"Block-state property names and string values.","markdownDescription":"Block-state property names and string values."}},"required":["Name"],"description":"Block state placed in the layer.","markdownDescription":"Block state placed in the layer."},"threshold":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Minimum noise value for a column to enter the layer.\n\nRange: i32","markdownDescription":"Minimum noise value for a column to enter the layer.\n\nRange: `i32`"},"y_level":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Centre Y of the layer.\n\nRange: i32","markdownDescription":"Centre Y of the layer.\n\nRange: `i32`"}},"required":["density","domain","max_range","range_mult","replaceable","scale","state","threshold","y_level"]}},"required":["config"]}},{"if":{"properties":{"type":{"const":"hbm:stratum_3d"}},"required":["type"]},"then":{"type":"object","properties":{"config":{"type":"object","properties":{"domain_x":{"description":"Noise domain sampled on the Y/Z plane.","markdownDescription":"Noise domain sampled on the Y/Z plane."},"domain_y":{"description":"Noise domain sampled on the X/Z plane.","markdownDescription":"Noise domain sampled on the X/Z plane."},"domain_z":{"description":"Noise domain sampled on the X/Y plane.","markdownDescription":"Noise domain sampled on the X/Y plane."},"replaceable":{"type":"object","properties":{"predicate_type":{"description":"Vanilla rule-test type.","markdownDescription":"Vanilla rule-test type."},"tag":{"description":"Block tag for tag_match.","markdownDescription":"Block tag for tag_match."},"block":{"description":"Block ID for block_match.","markdownDescription":"Block ID for block_match."}},"required":["predicate_type"],"description":"Vanilla rule test selecting blocks to replace.","markdownDescription":"Vanilla rule test selecting blocks to replace."},"scale_h":{"type":"number","minimum":-1.7976931348623157e+308,"maximum":1.7976931348623157e+308,"description":"Horizontal noise sampling scale.\n\nRange: finite f64","markdownDescription":"Horizontal noise sampling scale.\n\nRange: finite `f64`"},"scale_v":{"type":"number","minimum":-1.7976931348623157e+308,"maximum":1.7976931348623157e+308,"description":"Vertical noise sampling scale.\n\nRange: finite f64","markdownDescription":"Vertical noise sampling scale.\n\nRange: finite `f64`"},"state":{"type":"object","properties":{"Name":{"description":"Registered block ID.","markdownDescription":"Registered block ID."},"Properties":{"description":"Block-state property names and string values.","markdownDescription":"Block-state property names and string values."}},"required":["Name"],"description":"Block state placed in the deposit.","markdownDescription":"Block state placed in the deposit."},"threshold":{"type":"number","minimum":-1.7976931348623157e+308,"maximum":1.7976931348623157e+308,"description":"Minimum product of the three noise values for placement.\n\nRange: finite f64","markdownDescription":"Minimum product of the three noise values for placement.\n\nRange: finite `f64`"}},"required":["domain_x","domain_y","domain_z","replaceable","scale_h","scale_v","state","threshold"]}},"required":["config"]}},{"if":{"properties":{"type":{"const":"hbm:windowed_ore"}},"required":["type"]},"then":{"type":"object","properties":{"config":{"type":"object","properties":{"attempts":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Upper bound for random vein attempts per chunk.\n\nRange: [1, i32::MAX]","markdownDescription":"Upper bound for random vein attempts per chunk.\n\nRange: [1, `i32::MAX`]"},"maximum_center_radius":{"type":"integer","minimum":0,"maximum":2147483647,"description":"Maximum radius for the seed-derived window centre.\n\nRange: [0, i32::MAX]","markdownDescription":"Maximum radius for the seed-derived window centre.\n\nRange: [0, `i32::MAX`]"},"min_y":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Lowest sampled Y.\n\nRange: i32","markdownDescription":"Lowest sampled Y.\n\nRange: `i32`"},"minimum_center_radius":{"type":"integer","minimum":0,"maximum":2147483647,"description":"Minimum radius for the seed-derived window centre.\n\nRange: [0, i32::MAX]","markdownDescription":"Minimum radius for the seed-derived window centre.\n\nRange: [0, `i32::MAX`]"},"vein":{"type":"object","properties":{"size":{"type":"number","minimum":0,"maximum":64,"description":"Maximum vein size.\n\nRange: [0, 64]","markdownDescription":"Maximum vein size.\n\nRange: [0, 64]"},"discard_chance_on_air_exposure":{"type":"number","minimum":0,"maximum":1,"description":"Chance to discard ore exposed to air.\n\nRange: [0, 1]","markdownDescription":"Chance to discard ore exposed to air.\n\nRange: [0, 1]"},"targets":{"type":"array","items":{"type":"object","properties":{"target":{"description":"Vanilla rule test selecting replaceable blocks.","markdownDescription":"Vanilla rule test selecting replaceable blocks."},"state":{"description":"Block state placed in the vein.","markdownDescription":"Block state placed in the vein."}},"required":["target","state"]},"description":"Replacement targets and states.","markdownDescription":"Replacement targets and states."}},"required":["size","discard_chance_on_air_exposure","targets"],"description":"Vanilla ore configuration for each accepted vein attempt.","markdownDescription":"Vanilla ore configuration for each accepted vein attempt."},"window_size":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Side length of the square placement window.\n\nRange: [1, i32::MAX]","markdownDescription":"Side length of the square placement window.\n\nRange: [1, `i32::MAX`]"},"y_range":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Height of the sampled Y interval.\n\nRange: [1, i32::MAX]","markdownDescription":"Height of the sampled Y interval.\n\nRange: [1, `i32::MAX`]"}},"required":["attempts","maximum_center_radius","min_y","minimum_center_radius","vein","window_size","y_range"]}},"required":["config"]}},{"if":{"properties":{"type":{"const":"hbmspace:basalt_spikes"}},"required":["type"]},"then":{"type":"object","properties":{"config":{"type":"object","properties":{"block":{"type":"object","properties":{"Name":{"description":"Registered block ID.","markdownDescription":"Registered block ID."},"Properties":{"description":"Block-state property names and string values.","markdownDescription":"Block-state property names and string values."}},"required":["Name"],"description":"Spike block.","markdownDescription":"Spike block."},"biomes":{"description":"Biome ID, #tag or ID list.","markdownDescription":"Biome ID, `#tag` or ID list."}},"required":["block","biomes"]}},"required":["config"]}},{"if":{"properties":{"type":{"const":"hbmspace:plateau"}},"required":["type"]},"then":{"type":"object","properties":{"config":{"type":"object","properties":{"domain":{"description":"Noise seed domain.","markdownDescription":"Noise seed domain."},"scale":{"type":"number","description":"Horizontal noise scale.\n\nRange: f64","markdownDescription":"Horizontal noise scale.\n\nRange: `f64`"},"max_addition":{"type":"number","minimum":0,"maximum":64,"description":"Largest rise.\n\nRange: [0, 64]","markdownDescription":"Largest rise.\n\nRange: [0, 64]"},"step":{"type":"number","minimum":1,"maximum":64,"description":"Rise step.\n\nRange: [1, 64]","markdownDescription":"Rise step.\n\nRange: [1, 64]"},"topsoil":{"type":"number","minimum":0,"maximum":64,"description":"Surface layers.\n\nRange: [0, 64]","markdownDescription":"Surface layers.\n\nRange: [0, 64]"},"stone":{"type":"object","properties":{"Name":{"description":"Registered block ID.","markdownDescription":"Registered block ID."},"Properties":{"description":"Block-state property names and string values.","markdownDescription":"Block-state property names and string values."}},"required":["Name"],"description":"Raised block.","markdownDescription":"Raised block."},"surface":{"type":"object","properties":{"Name":{"description":"Registered block ID.","markdownDescription":"Registered block ID."},"Properties":{"description":"Block-state property names and string values.","markdownDescription":"Block-state property names and string values."}},"required":["Name"],"description":"Topsoil block.","markdownDescription":"Topsoil block."},"fill":{"type":"object","properties":{"Name":{"description":"Registered block ID.","markdownDescription":"Registered block ID."},"Properties":{"description":"Block-state property names and string values.","markdownDescription":"Block-state property names and string values."}},"required":["Name"],"description":"Block of level tops.","markdownDescription":"Block of level tops."},"biomes":{"description":"Biome ID, #tag or ID list.","markdownDescription":"Biome ID, `#tag` or ID list."}},"required":["domain","scale","max_addition","step","topsoil","stone","surface","fill","biomes"]}},"required":["config"]}},{"if":{"properties":{"type":{"const":"hbmspace:rubber_plant"}},"required":["type"]},"then":{"type":"object","properties":{"config":{"type":"object","properties":{"forest":{"type":"boolean","description":"Uses the forest mix.","markdownDescription":"Uses the forest mix."}},"required":["forest"]}},"required":["config"]}},{"if":{"properties":{"type":{"const":"hbmspace:seismic_crack"}},"required":["type"]},"then":{"type":"object","properties":{"config":{"type":"object","properties":{"domain":{"description":"Noise seed domain.","markdownDescription":"Noise seed domain."},"scale":{"type":"number","description":"Horizontal noise scale.\n\nRange: f64","markdownDescription":"Horizontal noise scale.\n\nRange: `f64`"},"threshold":{"type":"number","description":"Field level above which a crack forms.\n\nRange: f64","markdownDescription":"Field level above which a crack forms.\n\nRange: `f64`"},"depth":{"type":"number","minimum":0,"maximum":64,"description":"Fill depth above the bedrock.\n\nRange: [0, 64]","markdownDescription":"Fill depth above the bedrock.\n\nRange: [0, 64]"},"fill":{"type":"object","properties":{"Name":{"description":"Registered block ID.","markdownDescription":"Registered block ID."},"Properties":{"description":"Block-state property names and string values.","markdownDescription":"Block-state property names and string values."}},"required":["Name"],"description":"Fill block.","markdownDescription":"Fill block."},"biomes":{"description":"Biome ID, #tag or ID list.","markdownDescription":"Biome ID, `#tag` or ID list."}},"required":["domain","scale","threshold","depth","fill","biomes"]}},"required":["config"]}},{"if":{"properties":{"type":{"const":"hbmspace:ttree"}},"required":["type"]},"then":{"type":"object","properties":{"config":{"type":"object","properties":{"offset":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Leaf centre below the trunk top.\n\nRange: i32","markdownDescription":"Leaf centre below the trunk top.\n\nRange: `i32`"},"smallest":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Random trunk addition bound.\n\nRange: [1, i32::MAX]","markdownDescription":"Random trunk addition bound.\n\nRange: [1, `i32::MAX`]"},"tallest":{"type":"integer","minimum":0,"maximum":2147483647,"description":"Base trunk height.\n\nRange: [0, i32::MAX]","markdownDescription":"Base trunk height.\n\nRange: [0, `i32::MAX`]"},"xz":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Horizontal leaf radius.\n\nRange: [1, i32::MAX]","markdownDescription":"Horizontal leaf radius.\n\nRange: [1, `i32::MAX`]"},"y":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Vertical leaf radius.\n\nRange: [1, i32::MAX]","markdownDescription":"Vertical leaf radius.\n\nRange: [1, `i32::MAX`]"},"vines":{"type":"boolean","description":"Hangs vinyl vines.","markdownDescription":"Hangs vinyl vines."},"log":{"type":"object","properties":{"Name":{"description":"Registered block ID.","markdownDescription":"Registered block ID."},"Properties":{"description":"Block-state property names and string values.","markdownDescription":"Block-state property names and string values."}},"required":["Name"],"description":"Trunk block.","markdownDescription":"Trunk block."},"leaves":{"type":"object","properties":{"Name":{"description":"Registered block ID.","markdownDescription":"Registered block ID."},"Properties":{"description":"Block-state property names and string values.","markdownDescription":"Block-state property names and string values."}},"required":["Name"],"description":"Leaf block.","markdownDescription":"Leaf block."}},"required":["offset","smallest","tallest","xz","y","vines","log","leaves"]}},"required":["config"]}},{"if":{"properties":{"type":{"const":"hbmspace:voronoi_plates"}},"required":["type"]},"then":{"type":"object","properties":{"config":{"type":"object","properties":{"cell_size":{"type":"number","minimum":1,"maximum":256,"description":"Cell size in blocks.\n\nRange: [1, 256]","markdownDescription":"Cell size in blocks.\n\nRange: [1, 256]"},"crack_size":{"type":"number","description":"Edge distance below which a crack forms.\n\nRange: f64","markdownDescription":"Edge distance below which a crack forms.\n\nRange: `f64`"},"start_y":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Base height.\n\nRange: i32","markdownDescription":"Base height.\n\nRange: `i32`"},"thickness":{"type":"number","minimum":0,"maximum":256,"description":"Largest plate rise.\n\nRange: [0, 256]","markdownDescription":"Largest plate rise.\n\nRange: [0, 256]"},"shape_exponent":{"type":"number","description":"Exponent of the rise profile.\n\nRange: f64","markdownDescription":"Exponent of the rise profile.\n\nRange: `f64`"},"rock":{"type":"object","properties":{"Name":{"description":"Registered block ID.","markdownDescription":"Registered block ID."},"Properties":{"description":"Block-state property names and string values.","markdownDescription":"Block-state property names and string values."}},"required":["Name"],"description":"Plate block.","markdownDescription":"Plate block."},"surface":{"type":"object","properties":{"Name":{"description":"Registered block ID.","markdownDescription":"Registered block ID."},"Properties":{"description":"Block-state property names and string values.","markdownDescription":"Block-state property names and string values."}},"required":["Name"],"description":"Top block.","markdownDescription":"Top block."},"fluid":{"type":"object","properties":{"Name":{"description":"Registered block ID.","markdownDescription":"Registered block ID."},"Properties":{"description":"Block-state property names and string values.","markdownDescription":"Block-state property names and string values."}},"required":["Name"],"description":"Fluid the plates displace.","markdownDescription":"Fluid the plates displace."},"biomes":{"description":"Biome ID, #tag or ID list.","markdownDescription":"Biome ID, `#tag` or ID list."}},"required":["cell_size","crack_size","start_y","thickness","shape_exponent","rock","surface","fluid","biomes"]}},"required":["config"]}},{"if":{"properties":{"type":{"const":"hbmspace:water_coral"}},"required":["type"]},"then":{"type":"object","properties":{"config":{"type":"object","properties":{"sea_level":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sea level of the body.\n\nRange: i32","markdownDescription":"Sea level of the body.\n\nRange: `i32`"}},"required":["sea_level"]}},"required":["config"]}},{"if":{"properties":{"type":{"const":"hbmspace:water_plant"}},"required":["type"]},"then":{"type":"object","properties":{"config":{"type":"object","properties":{"sea_level":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sea level of the body.\n\nRange: i32","markdownDescription":"Sea level of the body.\n\nRange: `i32`"}},"required":["sea_level"]}},"required":["config"]}}]}