{"$schema":"http://json-schema.org/draft-07/schema#","title":"NTM 1.0.1 recipes","type":"object","properties":{"type":{"type":"string","anyOf":[{"enum":["hbm:ammo_press","hbm:annihilator","hbm:anvil_construction","hbm:anvil_smithing","hbm:arc_furnace","hbm:arc_welder","hbm:assembly_machine","hbm:blast_furnace","hbm:breeder","hbm:cargo_shell","hbm:catalytic_reformer","hbm:centrifuge","hbm:chemical_plant","hbm:coker","hbm:combination_oven","hbm:compressor","hbm:cracking_tower","hbm:crafting_shaped","hbm:crafting_shapeless","hbm:crucible","hbm:crystallizer","hbm:custom_machine","hbm:cyclotron","hbm:duct_retype","hbm:duct_untype","hbm:electrolyser_fluid","hbm:electrolyser_metal","hbm:exposure_chamber","hbm:fluid_breeder","hbm:fraction_tower","hbm:fuel_pool","hbm:fusion","hbm:gas_centrifuge","hbm:grenade_assembly","hbm:hydrotreater","hbm:lemegeton","hbm:liquefaction","hbm:magic","hbm:material_distribution","hbm:mixer","hbm:mku","hbm:outgasser","hbm:particle_accelerator","hbm:pedestal","hbm:plasma_forge","hbm:precision_assembler","hbm:press","hbm:purex","hbm:pyro_oven","hbm:radiolysis","hbm:rbmk_fuel_disassembly","hbm:refinery","hbm:rock_mill","hbm:rotary_furnace","hbm:scraps_split","hbm:shredder","hbm:silex","hbm:soldering","hbm:solidification","hbm:space_assembler","hbm:supercomputer","hbm:tag_result","hbm:vacuum_refinery"]},{"type":"string"}]}},"required":["type"],"allOf":[{"if":{"properties":{"type":{"const":"hbm:ammo_press"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"},"key":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"],"description":"Maps each grid symbol to a counted ingredient.","markdownDescription":"Maps each grid symbol to a counted ingredient."},"pattern":{"description":"Three rows of three characters for the fixed-grid recipe.","markdownDescription":"Three rows of three characters for the fixed-grid recipe."}},"required":["output_items","key","pattern"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:annihilator"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"item":{"description":"Item ID or item tag tallied by item count.","markdownDescription":"Item ID or item tag tallied by item count."},"fluid":{"description":"Fluid ID tallied in mB.","markdownDescription":"Fluid ID tallied in mB."},"stack":{"type":"object","properties":{"id":{"description":"Item ID.","markdownDescription":"Item ID."},"count":{"type":"number","minimum":1,"maximum":99,"description":"Stack size; default 1.\n\nRange: [1, 99]","markdownDescription":"Stack size; default 1.\n\nRange: [1, 99]"},"components":{"description":"Item-component values.","markdownDescription":"Item-component values."}},"required":["id"],"description":"Stack template tallied by item and NTM subtype; its count and other components are ignored.","markdownDescription":"Stack template tallied by item and NTM subtype; its count and other components are ignored."},"milestones":{"type":"array","items":{"type":"object","properties":{"amount":{"description":"Tally threshold as a decimal integer string.\n\nRange: Unbounded signed integer","markdownDescription":"Tally threshold as a decimal integer string.\n\nRange: Unbounded signed integer"},"payout":{"type":"object","properties":{"id":{"description":"Payout item ID.","markdownDescription":"Payout item ID."},"count":{"type":"number","minimum":1,"maximum":99,"description":"Payout stack size; default 1.\n\nRange: [1, 99]","markdownDescription":"Payout stack size; default 1.\n\nRange: [1, 99]"},"components":{"description":"Payout item-component values.","markdownDescription":"Payout item-component values."}},"required":["id"]}},"required":["amount"]},"description":"Payout thresholds.","markdownDescription":"Payout thresholds."}},"required":["item","fluid","stack","milestones"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:anvil_construction"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_items":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Ordered counted item inputs; defaults to an empty list.","markdownDescription":"Ordered counted item inputs; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"},"overlay":{"description":"Anvil GUI category and badge: none, construction, recycling, or smithing. A recycling recipe is listed with its first input as icon.","markdownDescription":"Anvil GUI category and badge: `none`, `construction`, `recycling`, or `smithing`. A `recycling` recipe is listed with its first input as icon."},"tier":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Minimum anvil tier; default 0.\n\nRange: i32","markdownDescription":"Minimum anvil tier; default 0.\n\nRange: `i32`"},"tier_upper":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Maximum anvil tier; default -1, which leaves it unbounded.\n\nRange: i32","markdownDescription":"Maximum anvil tier; default -1, which leaves it unbounded.\n\nRange: `i32`"}},"required":["input_items","output_items","overlay"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:anvil_smithing"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_items":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Ordered counted item inputs; defaults to an empty list.","markdownDescription":"Ordered counted item inputs; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"},"tier":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Minimum anvil tier; default 1.\n\nRange: i32","markdownDescription":"Minimum anvil tier; default 1.\n\nRange: `i32`"},"kind":{"description":"Smithing behavior: plain, hot, mold, poison, or rename; default plain.","markdownDescription":"Smithing behavior: `plain`, `hot`, `mold`, `poison`, or `rename`; default `plain`."},"shapeless":{"type":"boolean","description":"For plain and hot, also matches with the slots swapped when true; default false.","markdownDescription":"For `plain` and `hot`, also matches with the slots swapped when true; default false."},"shape":{"description":"For mold, the left slot matches any item in a c or hbm item tag whose path starts with <shape>/, in place of the position-0 ingredient.","markdownDescription":"For `mold`, the left slot matches any item in a `c` or `hbm` item tag whose path starts with `<shape>/`, in place of the position-0 ingredient."}},"required":["input_items","output_items"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:arc_furnace"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_items":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Ordered counted item inputs; defaults to an empty list.","markdownDescription":"Ordered counted item inputs; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"},"output_materials":{"type":"object","properties":{"material":{"description":"NTM material name.","markdownDescription":"NTM material name."},"amount":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Quantity in NTM material units.\n\nRange: i32","markdownDescription":"Quantity in NTM material units.\n\nRange: `i32`"}},"required":["material","amount"],"description":"Molten-mode material stacks poured per input item; default empty.","markdownDescription":"Molten-mode material stacks poured per input item; default empty."}},"required":["input_items"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:arc_welder"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_items":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Ordered counted item inputs; defaults to an empty list.","markdownDescription":"Ordered counted item inputs; defaults to an empty list."},"input_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid inputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid inputs with amount and pressure; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"duration":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Process duration in ticks; defaults to 0.\n\nRange: i32","markdownDescription":"Process duration in ticks; defaults to 0.\n\nRange: `i32`"},"power":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"HE demand; defaults to 0.\n\nRange: i64","markdownDescription":"HE demand; defaults to 0.\n\nRange: `i64`"},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"}},"required":["input_items","output_items","duration","power"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:assembly_machine"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_items":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Ordered counted item inputs; defaults to an empty list.","markdownDescription":"Ordered counted item inputs; defaults to an empty list."},"input_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid inputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid inputs with amount and pressure; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"output_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid outputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid outputs with amount and pressure; defaults to an empty list."},"duration":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Process duration in ticks; defaults to 0.\n\nRange: i32","markdownDescription":"Process duration in ticks; defaults to 0.\n\nRange: `i32`"},"power":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"HE demand; defaults to 0.\n\nRange: i64","markdownDescription":"HE demand; defaults to 0.\n\nRange: `i64`"},"icon":{"type":"object","properties":{"id":{"description":"Item ID.","markdownDescription":"Item ID."},"count":{"type":"number","minimum":1,"maximum":99,"description":"Stack size; default 1.\n\nRange: [1, 99]","markdownDescription":"Stack size; default 1.\n\nRange: [1, 99]"},"components":{"description":"Item-component values.","markdownDescription":"Item-component values."}},"required":["id"],"description":"Stack template displayed for the recipe; otherwise derived from the output.","markdownDescription":"Stack template displayed for the recipe; otherwise derived from the output."},"icon_from_input":{"type":"boolean","description":"Derives the display icon from the first item input when true; defaults to false.","markdownDescription":"Derives the display icon from the first item input when true; defaults to false."},"name_wrapper":{"description":"Translation key applied around the displayed recipe name.","markdownDescription":"Translation key applied around the displayed recipe name."},"custom_localization":{"type":"boolean","description":"Resolves the internal name as a translation key when true; defaults to false.","markdownDescription":"Resolves the internal name as a translation key when true; defaults to false."},"blueprint_pools":{"description":"Blueprint pools containing the recipe; a pooled recipe needs a blueprint of one of them in the machine.","markdownDescription":"Blueprint pools containing the recipe; a pooled recipe needs a blueprint of one of them in the machine."},"blueprint_pools_528":{"description":"Replaces blueprint_pools while the enable_528 flag holds.","markdownDescription":"Replaces blueprint_pools while the enable_528 flag holds."},"auto_switch_group":{"description":"Translation key grouping recipes; the machine switches to the group member whose first item input matches its first input slot.","markdownDescription":"Translation key grouping recipes; the machine switches to the group member whose first item input matches its first input slot."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"}},"required":["duration","power"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:blast_furnace"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_items":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Ordered counted item inputs; defaults to an empty list.","markdownDescription":"Ordered counted item inputs; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"duration":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Process duration in ticks; use a positive value for timed processing.\n\nRange: i32","markdownDescription":"Process duration in ticks; use a positive value for timed processing.\n\nRange: `i32`"},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"}},"required":["input_items","output_items","duration"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:breeder"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_items":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Ordered counted item inputs; defaults to an empty list.","markdownDescription":"Ordered counted item inputs; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"},"flux":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Neutron-flux threshold and progress-rate divisor; use [1, i32::MAX].\n\nRange: i32","markdownDescription":"Neutron-flux threshold and progress-rate divisor; use [1, `i32::MAX`].\n\nRange: `i32`"}},"required":["input_items","output_items","flux"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:cargo_shell"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{}},"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:catalytic_reformer"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid inputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid inputs with amount and pressure; defaults to an empty list."},"output_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid outputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid outputs with amount and pressure; defaults to an empty list."},"power":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"HE demand; defaults to 0.\n\nRange: i64","markdownDescription":"HE demand; defaults to 0.\n\nRange: `i64`"},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"}},"required":["input_fluids","output_fluids","power"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:centrifuge"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_items":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Ordered counted item inputs; defaults to an empty list.","markdownDescription":"Ordered counted item inputs; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"}},"required":["input_items","output_items"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:chemical_plant"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_items":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Ordered counted item inputs; defaults to an empty list.","markdownDescription":"Ordered counted item inputs; defaults to an empty list."},"input_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid inputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid inputs with amount and pressure; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"output_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid outputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid outputs with amount and pressure; defaults to an empty list."},"duration":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Process duration in ticks; defaults to 0.\n\nRange: i32","markdownDescription":"Process duration in ticks; defaults to 0.\n\nRange: `i32`"},"power":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"HE demand; defaults to 0.\n\nRange: i64","markdownDescription":"HE demand; defaults to 0.\n\nRange: `i64`"},"icon":{"type":"object","properties":{"id":{"description":"Item ID.","markdownDescription":"Item ID."},"count":{"type":"number","minimum":1,"maximum":99,"description":"Stack size; default 1.\n\nRange: [1, 99]","markdownDescription":"Stack size; default 1.\n\nRange: [1, 99]"},"components":{"description":"Item-component values.","markdownDescription":"Item-component values."}},"required":["id"],"description":"Stack template displayed for the recipe; otherwise derived from the output.","markdownDescription":"Stack template displayed for the recipe; otherwise derived from the output."},"icon_from_input":{"type":"boolean","description":"Derives the display icon from the first item input when true; defaults to false.","markdownDescription":"Derives the display icon from the first item input when true; defaults to false."},"name_wrapper":{"description":"Translation key applied around the displayed recipe name.","markdownDescription":"Translation key applied around the displayed recipe name."},"custom_localization":{"type":"boolean","description":"Resolves the internal name as a translation key when true; defaults to false.","markdownDescription":"Resolves the internal name as a translation key when true; defaults to false."},"blueprint_pools":{"description":"Blueprint pools containing the recipe; a pooled recipe needs a blueprint of one of them in the machine.","markdownDescription":"Blueprint pools containing the recipe; a pooled recipe needs a blueprint of one of them in the machine."},"blueprint_pools_528":{"description":"Replaces blueprint_pools while the enable_528 flag holds.","markdownDescription":"Replaces blueprint_pools while the enable_528 flag holds."},"auto_switch_group":{"description":"Translation key grouping recipes; the machine switches to the group member whose first item input matches its first input slot.","markdownDescription":"Translation key grouping recipes; the machine switches to the group member whose first item input matches its first input slot."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"}},"required":["duration","power"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:coker"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid inputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid inputs with amount and pressure; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"output_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid outputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid outputs with amount and pressure; defaults to an empty list."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"}},"required":["input_fluids"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:combination_oven"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_items":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Ordered counted item inputs; defaults to an empty list.","markdownDescription":"Ordered counted item inputs; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"output_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid outputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid outputs with amount and pressure; defaults to an empty list."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"}},"required":["input_items"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:compressor"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid inputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid inputs with amount and pressure; defaults to an empty list."},"output_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid outputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid outputs with amount and pressure; defaults to an empty list."},"duration":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Process duration in ticks; defaults to 0.\n\nRange: i32","markdownDescription":"Process duration in ticks; defaults to 0.\n\nRange: `i32`"},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"}},"required":["input_fluids","output_fluids","duration"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:container_upgrade"}},"required":["type"]},"then":{"not":{},"errorMessage":"`hbm:container_upgrade` was removed in NTM 1.0.1; this schema targets NTM 1.0.1.","doNotSuggest":true}},{"if":{"properties":{"type":{"const":"hbm:cracking_tower"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid inputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid inputs with amount and pressure; defaults to an empty list."},"output_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid outputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid outputs with amount and pressure; defaults to an empty list."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"}},"required":["input_fluids","output_fluids"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:crafting_shaped"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"pattern":{"description":"1–3 equal-width rows, each at most 3 characters. Spaces represent empty cells; at least one cell must contain an ingredient.","markdownDescription":"1–3 equal-width rows, each at most 3 characters. Spaces represent empty cells; at least one cell must contain an ingredient."},"key":{"type":"object","additionalProperties":{"description":"One non-space character mapped to an ingredient used in the pattern.","markdownDescription":"One non-space character mapped to an ingredient used in the pattern."},"description":"Maps each pattern symbol to an ingredient; every key symbol must appear in the pattern.","markdownDescription":"Maps each pattern symbol to an ingredient; every key symbol must appear in the pattern."},"result":{"type":"object","properties":{"id":{"description":"Item ID.","markdownDescription":"Item ID."},"count":{"type":"number","minimum":1,"maximum":99,"description":"Stack size; default 1.\n\nRange: [1, 99]","markdownDescription":"Stack size; default 1.\n\nRange: [1, 99]"},"components":{"description":"Item-component values.","markdownDescription":"Item-component values."}},"required":["id"],"description":"Output stack template. A result carrier requires count 1.","markdownDescription":"Output stack template. A result carrier requires count 1."},"input_state":{"type":"object","additionalProperties":{"type":"object","properties":{"components":{"description":"Exact component values required on this input; default empty.","markdownDescription":"Exact component values required on this input; default empty."},"predicates":{"description":"Registered component predicates required on this input; default empty.","markdownDescription":"Registered component predicates required on this input; default empty."},"preserve":{"description":"State destination: result or remainder. Omit to consume only pristine or explicitly required state.","markdownDescription":"State destination: result or remainder. Omit to consume only pristine or explicitly required state."}},"description":"Pattern symbol or zero-based ingredient index mapped to an input rule.","markdownDescription":"Pattern symbol or zero-based ingredient index mapped to an input rule."},"description":"Input-state rules keyed by pattern symbol; default empty.","markdownDescription":"Input-state rules keyed by pattern symbol; default empty."},"category":{"description":"Recipe-book category: building, redstone, equipment, or misc; default misc.","markdownDescription":"Recipe-book category: `building`, `redstone`, `equipment`, or `misc`; default `misc`."},"group":{"description":"Recipe-book group string; default empty.","markdownDescription":"Recipe-book group string; default empty."},"show_notification":{"type":"boolean","description":"Shows the recipe-unlock notification; default true.","markdownDescription":"Shows the recipe-unlock notification; default `true`."}},"required":["pattern","key","result"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:crafting_shapeless"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"ingredients":{"description":"1–9 ingredients; each entry consumes one item from its assigned slot.","markdownDescription":"1–9 ingredients; each entry consumes one item from its assigned slot."},"result":{"type":"object","properties":{"id":{"description":"Item ID.","markdownDescription":"Item ID."},"count":{"type":"number","minimum":1,"maximum":99,"description":"Stack size; default 1.\n\nRange: [1, 99]","markdownDescription":"Stack size; default 1.\n\nRange: [1, 99]"},"components":{"description":"Item-component values.","markdownDescription":"Item-component values."}},"required":["id"],"description":"Output stack template. A result carrier requires count 1.","markdownDescription":"Output stack template. A result carrier requires count 1."},"input_state":{"type":"object","additionalProperties":{"type":"object","properties":{"components":{"description":"Exact component values required on this input; default empty.","markdownDescription":"Exact component values required on this input; default empty."},"predicates":{"description":"Registered component predicates required on this input; default empty.","markdownDescription":"Registered component predicates required on this input; default empty."},"preserve":{"description":"State destination: result or remainder. Omit to consume only pristine or explicitly required state.","markdownDescription":"State destination: result or remainder. Omit to consume only pristine or explicitly required state."}},"description":"Pattern symbol or zero-based ingredient index mapped to an input rule.","markdownDescription":"Pattern symbol or zero-based ingredient index mapped to an input rule."},"description":"Input-state rules keyed by zero-based ingredient index; default empty.","markdownDescription":"Input-state rules keyed by zero-based ingredient index; default empty."},"category":{"description":"Recipe-book category: building, redstone, equipment, or misc; default misc.","markdownDescription":"Recipe-book category: `building`, `redstone`, `equipment`, or `misc`; default `misc`."},"group":{"description":"Recipe-book group string; default empty.","markdownDescription":"Recipe-book group string; default empty."},"show_notification":{"type":"boolean","description":"Shows the recipe-unlock notification; default true.","markdownDescription":"Shows the recipe-unlock notification; default `true`."}},"required":["ingredients","result"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:crucible"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"icon":{"type":"object","properties":{"id":{"description":"Item ID.","markdownDescription":"Item ID."},"count":{"type":"number","minimum":1,"maximum":99,"description":"Stack size; default 1.\n\nRange: [1, 99]","markdownDescription":"Stack size; default 1.\n\nRange: [1, 99]"},"components":{"description":"Item-component values.","markdownDescription":"Item-component values."}},"required":["id"],"description":"Stack template displayed for the recipe; otherwise derived from the output.","markdownDescription":"Stack template displayed for the recipe; otherwise derived from the output."},"name_wrapper":{"description":"Translation key applied around the displayed recipe name.","markdownDescription":"Translation key applied around the displayed recipe name."},"custom_localization":{"type":"boolean","description":"Resolves the internal name as a translation key when true; defaults to false.","markdownDescription":"Resolves the internal name as a translation key when true; defaults to false."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"},"frequency":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Positive tick interval for crucible recipe application; default 1.\n\nRange: [1, i32::MAX]","markdownDescription":"Positive tick interval for crucible recipe application; default 1.\n\nRange: [1, `i32::MAX`]"},"input_materials":{"type":"array","items":{"type":"object","properties":{"material":{"description":"NTM material name.","markdownDescription":"NTM material name."},"amount":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Quantity in NTM material units.\n\nRange: i32","markdownDescription":"Quantity in NTM material units.\n\nRange: `i32`"}},"required":["material","amount"]},"description":"Material stacks consumed by the crucible; default empty.","markdownDescription":"Material stacks consumed by the crucible; default empty."},"output_materials":{"type":"array","items":{"type":"object","properties":{"material":{"description":"NTM material name.","markdownDescription":"NTM material name."},"amount":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Quantity in NTM material units.\n\nRange: i32","markdownDescription":"Quantity in NTM material units.\n\nRange: `i32`"}},"required":["material","amount"]},"description":"Material stacks produced by the crucible; default empty.","markdownDescription":"Material stacks produced by the crucible; default empty."}},"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:crystallizer"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_items":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Ordered counted item inputs; defaults to an empty list.","markdownDescription":"Ordered counted item inputs; defaults to an empty list."},"input_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid inputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid inputs with amount and pressure; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"duration":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Process duration in ticks; an operation takes the effective value plus one tick. Keep the effective value within [0, 32766] because the machine stores progress as a signed short.\n\nRange: i32","markdownDescription":"Process duration in ticks; an operation takes the effective value plus one tick. Keep the effective value within [0, 32766] because the machine stores progress as a signed short.\n\nRange: `i32`"},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"},"productivity":{"type":"number","description":"Per-level input-retention chance with the EFFECT upgrade; operation chance caps at 0.99; default 0.\n\nRange: f32","markdownDescription":"Per-level input-retention chance with the EFFECT upgrade; operation chance caps at 0.99; default 0.\n\nRange: `f32`"}},"required":["input_items","input_fluids","output_items","duration"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:custom_machine"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_items":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Ordered counted item inputs; defaults to an empty list.","markdownDescription":"Ordered counted item inputs; defaults to an empty list."},"input_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid inputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid inputs with amount and pressure; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"output_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid outputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid outputs with amount and pressure; defaults to an empty list."},"duration":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Base duration in ticks; definition multipliers apply before clamping to at least 1.\n\nRange: i32","markdownDescription":"Base duration in ticks; definition multipliers apply before clamping to at least 1.\n\nRange: `i32`"},"power":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Base HE demand per tick; definition multipliers apply before clamping to at least 1.\n\nRange: i64","markdownDescription":"Base HE demand per tick; definition multipliers apply before clamping to at least 1.\n\nRange: `i64`"},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"},"pollution_amount":{"type":"number","description":"Pollution change: positive adds, negative removes; default 0.\n\nRange: f32","markdownDescription":"Pollution change: positive adds, negative removes; default 0.\n\nRange: `f32`"},"pollution_type":{"description":"Pollution kind: SOOT, POISON, HEAVYMETAL, or FALLOUT. Omitted: no pollution change.","markdownDescription":"Pollution kind: `SOOT`, `POISON`, `HEAVYMETAL`, or `FALLOUT`. Omitted: no pollution change."},"recipe_key":{"description":"Required key linking this process to custom-machine definitions.","markdownDescription":"Required key linking this process to custom-machine definitions."},"radiation_amount":{"type":"number","description":"Radiation change: positive adds, negative removes; default 0.\n\nRange: f32","markdownDescription":"Radiation change: positive adds, negative removes; default 0.\n\nRange: `f32`"},"flux":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Required flux when the definition enables flux mode; default 0.\n\nRange: i32","markdownDescription":"Required flux when the definition enables flux mode; default 0.\n\nRange: `i32`"},"heat":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Heat change: positive consumes, negative produces; default 0.\n\nRange: i32","markdownDescription":"Heat change: positive consumes, negative produces; default 0.\n\nRange: `i32`"}},"required":["input_items","input_fluids","output_items","duration","power","recipe_key"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:cyclotron"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_items":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Ordered counted item inputs; defaults to an empty list.","markdownDescription":"Ordered counted item inputs; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"},"amat":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Antimatter added to the collector per operation; use [1, 8000] mB for positive output.\n\nRange: i32","markdownDescription":"Antimatter added to the collector per operation; use [1, 8000] mB for positive output.\n\nRange: `i32`"}},"required":["input_items","output_items","amat"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:duct_retype"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{}},"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:duct_untype"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{}},"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:electrolyser_fluid"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid inputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid inputs with amount and pressure; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"output_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid outputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid outputs with amount and pressure; defaults to an empty list."},"duration":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Process duration in ticks; defaults to 0.\n\nRange: i32","markdownDescription":"Process duration in ticks; defaults to 0.\n\nRange: `i32`"},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"}},"required":["input_fluids","output_fluids","duration"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:electrolyser_metal"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_items":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Ordered counted item inputs; defaults to an empty list.","markdownDescription":"Ordered counted item inputs; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"duration":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Process duration in ticks; defaults to 0.\n\nRange: i32","markdownDescription":"Process duration in ticks; defaults to 0.\n\nRange: `i32`"},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"},"output_material":{"type":"object","properties":{"material":{"description":"NTM material name.","markdownDescription":"NTM material name."},"amount":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Quantity in NTM material units.\n\nRange: i32","markdownDescription":"Quantity in NTM material units.\n\nRange: `i32`"}},"required":["material","amount"],"description":"Required primary material-stack output.","markdownDescription":"Required primary material-stack output."},"output_material_2":{"type":"object","properties":{"material":{"description":"NTM material name.","markdownDescription":"NTM material name."},"amount":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Quantity in NTM material units.\n\nRange: i32","markdownDescription":"Quantity in NTM material units.\n\nRange: `i32`"}},"required":["material","amount"],"description":"Optional secondary material-stack output.","markdownDescription":"Optional secondary material-stack output."}},"required":["input_items","duration","output_material"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:exposure_chamber"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_items":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Ordered counted item inputs; defaults to an empty list.","markdownDescription":"Ordered counted item inputs; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"}},"required":["input_items","output_items"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:fluid_breeder"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid inputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid inputs with amount and pressure; defaults to an empty list."},"output_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid outputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid outputs with amount and pressure; defaults to an empty list."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"}},"required":["input_fluids","output_fluids"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:fraction_tower"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid inputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid inputs with amount and pressure; defaults to an empty list."},"output_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid outputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid outputs with amount and pressure; defaults to an empty list."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"}},"required":["input_fluids","output_fluids"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:fuel_pool"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_items":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Ordered counted item inputs; defaults to an empty list.","markdownDescription":"Ordered counted item inputs; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"}},"required":["input_items","output_items"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:fusion"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid inputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid inputs with amount and pressure; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"output_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid outputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid outputs with amount and pressure; defaults to an empty list."},"duration":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Process duration in ticks; defaults to 0.\n\nRange: i32","markdownDescription":"Process duration in ticks; defaults to 0.\n\nRange: `i32`"},"power":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"HE demand; defaults to 0.\n\nRange: i64","markdownDescription":"HE demand; defaults to 0.\n\nRange: `i64`"},"icon":{"type":"object","properties":{"id":{"description":"Item ID.","markdownDescription":"Item ID."},"count":{"type":"number","minimum":1,"maximum":99,"description":"Stack size; default 1.\n\nRange: [1, 99]","markdownDescription":"Stack size; default 1.\n\nRange: [1, 99]"},"components":{"description":"Item-component values.","markdownDescription":"Item-component values."}},"required":["id"],"description":"Stack template displayed for the recipe; otherwise derived from the output.","markdownDescription":"Stack template displayed for the recipe; otherwise derived from the output."},"name_wrapper":{"description":"Translation key applied around the displayed recipe name.","markdownDescription":"Translation key applied around the displayed recipe name."},"custom_localization":{"type":"boolean","description":"Resolves the internal name as a translation key when true; defaults to false.","markdownDescription":"Resolves the internal name as a translation key when true; defaults to false."},"blueprint_pools":{"description":"Blueprint pools containing the recipe; a pooled recipe needs a blueprint of one of them in the machine.","markdownDescription":"Blueprint pools containing the recipe; a pooled recipe needs a blueprint of one of them in the machine."},"blueprint_pools_528":{"description":"Replaces blueprint_pools while the enable_528 flag holds.","markdownDescription":"Replaces blueprint_pools while the enable_528 flag holds."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"},"blue":{"type":"number","description":"Blue plasma colour channel; [0, 1] gives the standard intensity range; default 0.6.\n\nRange: f32","markdownDescription":"Blue plasma colour channel; [0, 1] gives the standard intensity range; default 0.6.\n\nRange: `f32`"},"green":{"type":"number","description":"Green plasma colour channel; [0, 1] gives the standard intensity range; default 0.2.\n\nRange: f32","markdownDescription":"Green plasma colour channel; [0, 1] gives the standard intensity range; default 0.2.\n\nRange: `f32`"},"ignition_temp":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Minimum klystron energy needed to ignite the plasma; default 0.\n\nRange: i64","markdownDescription":"Minimum klystron energy needed to ignite the plasma; default 0.\n\nRange: `i64`"},"neutron_flux":{"type":"number","description":"Neutron output at full power, sent only with plasma output; default 0.\n\nRange: f64","markdownDescription":"Neutron output at full power, sent only with plasma output; default 0.\n\nRange: `f64`"},"output_temp":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Plasma output energy at full power; positive energy emits plasma; default 0.\n\nRange: i64","markdownDescription":"Plasma output energy at full power; positive energy emits plasma; default 0.\n\nRange: `i64`"},"red":{"type":"number","description":"Red plasma colour channel; [0, 1] gives the standard intensity range; default 1.0.\n\nRange: f32","markdownDescription":"Red plasma colour channel; [0, 1] gives the standard intensity range; default 1.0.\n\nRange: `f32`"}},"required":["duration","power"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:gas_centrifuge"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"duration":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Process duration in ticks; defaults to 0.\n\nRange: i32","markdownDescription":"Process duration in ticks; defaults to 0.\n\nRange: `i32`"},"power":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"HE demand; defaults to 0.\n\nRange: i64","markdownDescription":"HE demand; defaults to 0.\n\nRange: `i64`"},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"},"consumed":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Stage volume consumed per operation; use [1, 8000] for transfer; default 0.\n\nRange: i32","markdownDescription":"Stage volume consumed per operation; use [1, 8000] for transfer; default 0.\n\nRange: `i32`"},"stage":{"description":"Name of this enrichment stage, displayed through the translation key hbmpseudofluid.<stage> in lowercase; stages are internal identities, not pumpable fluids.","markdownDescription":"Name of this enrichment stage, displayed through the translation key `hbmpseudofluid.<stage>` in lowercase; stages are internal identities, not pumpable fluids."},"produced":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Stage volume passed to next; use [0, 8000]; default 0.\n\nRange: i32","markdownDescription":"Stage volume passed to `next`; use [0, 8000]; default 0.\n\nRange: `i32`"},"next":{"description":"Downstream stage name; omit for a terminal stage.","markdownDescription":"Downstream stage name; omit for a terminal stage."},"requires_upgrade":{"type":"boolean","description":"Requires the gas-centrifuge speed upgrade when true; default false.","markdownDescription":"Requires the gas-centrifuge speed upgrade when true; default false."},"feed":{"description":"Registered input fluid feeding this stage.","markdownDescription":"Registered input fluid feeding this stage."},"dead_end_volume":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Output-stage volume converted into dead_end_items when no gas centrifuge is downstream; use [1, 8000]; default 0.\n\nRange: i32","markdownDescription":"Output-stage volume converted into `dead_end_items` when no gas centrifuge is downstream; use [1, 8000]; default 0.\n\nRange: `i32`"},"dead_end_items":{"type":"object","properties":{"id":{"description":"Item ID.","markdownDescription":"Item ID."},"count":{"type":"number","minimum":1,"maximum":99,"description":"Stack size; default 1.\n\nRange: [1, 99]","markdownDescription":"Stack size; default 1.\n\nRange: [1, 99]"},"components":{"description":"Item-component values.","markdownDescription":"Item-component values."}},"required":["id"],"description":"Item stack templates produced at a dead end; default empty.","markdownDescription":"Item stack templates produced at a dead end; default empty."}},"required":["output_items","duration","power","stage"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:grenade_assembly"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{}},"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:hydrotreater"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid inputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid inputs with amount and pressure; defaults to an empty list."},"output_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid outputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid outputs with amount and pressure; defaults to an empty list."},"power":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"HE demand; defaults to 0.\n\nRange: i64","markdownDescription":"HE demand; defaults to 0.\n\nRange: `i64`"},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"}},"required":["input_fluids","output_fluids","power"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:lemegeton"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_items":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Ordered counted item inputs; defaults to an empty list.","markdownDescription":"Ordered counted item inputs; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"}},"required":["input_items","output_items"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:liquefaction"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_items":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Ordered counted item inputs; defaults to an empty list.","markdownDescription":"Ordered counted item inputs; defaults to an empty list."},"output_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid outputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid outputs with amount and pressure; defaults to an empty list."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"}},"required":["input_items","output_fluids"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:magic"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_items":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Ordered counted item inputs; defaults to an empty list.","markdownDescription":"Ordered counted item inputs; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"}},"required":["input_items","output_items"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:material_distribution"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"materials":{"type":"array","items":{"type":"object","properties":{"material":{"description":"NTM material name.","markdownDescription":"NTM material name."},"amount":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Quantity in NTM material units.\n\nRange: i32","markdownDescription":"Quantity in NTM material units.\n\nRange: `i32`"}},"required":["material","amount"]},"description":"Material stacks assigned to the target.","markdownDescription":"Material stacks assigned to the target."},"targets":{"description":"Item ID, item tag, or nonempty ID list receiving this material mapping. Each item and tag may be targeted by one row; a duplicate fails data loading.","markdownDescription":"Item ID, item tag, or nonempty ID list receiving this material mapping. Each item and tag may be targeted by one row; a duplicate fails data loading."}},"required":["materials","targets"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:mixer"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_items":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Ordered counted item inputs; defaults to an empty list.","markdownDescription":"Ordered counted item inputs; defaults to an empty list."},"input_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid inputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid inputs with amount and pressure; defaults to an empty list."},"output_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid outputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid outputs with amount and pressure; defaults to an empty list."},"duration":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Process duration in ticks; defaults to 0.\n\nRange: i32","markdownDescription":"Process duration in ticks; defaults to 0.\n\nRange: `i32`"},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"}},"required":["output_fluids","duration"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:mku"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{}},"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:outgasser"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_items":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Ordered counted item inputs; defaults to an empty list.","markdownDescription":"Ordered counted item inputs; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"output_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid outputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid outputs with amount and pressure; defaults to an empty list."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"},"fusion_only":{"type":"boolean","description":"Limits the recipe to the Fusion Reactor Breeding Chamber when true; default false.","markdownDescription":"Limits the recipe to the Fusion Reactor Breeding Chamber when true; default false."}},"required":["input_items"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:particle_accelerator"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_items":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Ordered counted item inputs; defaults to an empty list.","markdownDescription":"Ordered counted item inputs; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"},"momentum":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Minimum beam momentum; default 0. The first row by order whose inputs match decides; a slower beam fails instead of trying later rows.\n\nRange: i32","markdownDescription":"Minimum beam momentum; default 0. The first row by `order` whose inputs match decides; a slower beam fails instead of trying later rows.\n\nRange: `i32`"}},"required":["input_items","output_items"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:pedestal"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"},"key":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"],"description":"Maps each grid symbol to a counted ingredient.","markdownDescription":"Maps each grid symbol to a counted ingredient."},"pattern":{"description":"Three rows of three characters for the fixed-grid recipe.","markdownDescription":"Three rows of three characters for the fixed-grid recipe."},"recipe_set":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Clay tablet that lists the ritual: 0 for hbm:clay_tablet, 1 for hbm:clay_tablet_1; other integers alias by parity; matching is unaffected; default 0.\n\nRange: i32","markdownDescription":"Clay tablet that lists the ritual: 0 for `hbm:clay_tablet`, 1 for `hbm:clay_tablet_1`; other integers alias by parity; matching is unaffected; default 0.\n\nRange: `i32`"},"extra":{"description":"Additional condition: none; full_moon or new_moon around midnight in that moon phase; sun around noon; good_karma or bad_karma with a player within 20 blocks at reputation at least 10 or at most -10; default none.","markdownDescription":"Additional condition: `none`; `full_moon` or `new_moon` around midnight in that moon phase; `sun` around noon; `good_karma` or `bad_karma` with a player within 20 blocks at reputation at least 10 or at most -10; default `none`."}},"required":["output_items","key","pattern"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:plasma_forge"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_items":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Ordered counted item inputs; defaults to an empty list.","markdownDescription":"Ordered counted item inputs; defaults to an empty list."},"input_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid inputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid inputs with amount and pressure; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"duration":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Process duration in ticks; defaults to 0.\n\nRange: i32","markdownDescription":"Process duration in ticks; defaults to 0.\n\nRange: `i32`"},"power":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"HE demand; defaults to 0.\n\nRange: i64","markdownDescription":"HE demand; defaults to 0.\n\nRange: `i64`"},"icon":{"type":"object","properties":{"id":{"description":"Item ID.","markdownDescription":"Item ID."},"count":{"type":"number","minimum":1,"maximum":99,"description":"Stack size; default 1.\n\nRange: [1, 99]","markdownDescription":"Stack size; default 1.\n\nRange: [1, 99]"},"components":{"description":"Item-component values.","markdownDescription":"Item-component values."}},"required":["id"],"description":"Stack template displayed for the recipe; otherwise derived from the output.","markdownDescription":"Stack template displayed for the recipe; otherwise derived from the output."},"icon_from_input":{"type":"boolean","description":"Derives the display icon from the first item input when true; defaults to false.","markdownDescription":"Derives the display icon from the first item input when true; defaults to false."},"name_wrapper":{"description":"Translation key applied around the displayed recipe name.","markdownDescription":"Translation key applied around the displayed recipe name."},"custom_localization":{"type":"boolean","description":"Resolves the internal name as a translation key when true; defaults to false.","markdownDescription":"Resolves the internal name as a translation key when true; defaults to false."},"blueprint_pools":{"description":"Blueprint pools containing the recipe; a pooled recipe needs a blueprint of one of them in the machine.","markdownDescription":"Blueprint pools containing the recipe; a pooled recipe needs a blueprint of one of them in the machine."},"blueprint_pools_528":{"description":"Replaces blueprint_pools while the enable_528 flag holds.","markdownDescription":"Replaces blueprint_pools while the enable_528 flag holds."},"auto_switch_group":{"description":"Translation key grouping recipes; the machine switches to the group member whose first item input matches its first input slot.","markdownDescription":"Translation key grouping recipes; the machine switches to the group member whose first item input matches its first input slot."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"},"ignition_temp":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Minimum plasma energy needed to ignite the forge; default 0.\n\nRange: i64","markdownDescription":"Minimum plasma energy needed to ignite the forge; default 0.\n\nRange: `i64`"}},"required":["output_items","duration","power"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:precision_assembler"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_items":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Ordered counted item inputs; defaults to an empty list.","markdownDescription":"Ordered counted item inputs; defaults to an empty list."},"input_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid inputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid inputs with amount and pressure; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"output_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid outputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid outputs with amount and pressure; defaults to an empty list."},"duration":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Process duration in ticks; defaults to 0.\n\nRange: i32","markdownDescription":"Process duration in ticks; defaults to 0.\n\nRange: `i32`"},"power":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"HE demand; defaults to 0.\n\nRange: i64","markdownDescription":"HE demand; defaults to 0.\n\nRange: `i64`"},"icon":{"type":"object","properties":{"id":{"description":"Item ID.","markdownDescription":"Item ID."},"count":{"type":"number","minimum":1,"maximum":99,"description":"Stack size; default 1.\n\nRange: [1, 99]","markdownDescription":"Stack size; default 1.\n\nRange: [1, 99]"},"components":{"description":"Item-component values.","markdownDescription":"Item-component values."}},"required":["id"],"description":"Stack template displayed for the recipe; otherwise derived from the output.","markdownDescription":"Stack template displayed for the recipe; otherwise derived from the output."},"icon_from_input":{"type":"boolean","description":"Derives the display icon from the first item input when true; defaults to false.","markdownDescription":"Derives the display icon from the first item input when true; defaults to false."},"name_wrapper":{"description":"Translation key applied around the displayed recipe name.","markdownDescription":"Translation key applied around the displayed recipe name."},"custom_localization":{"type":"boolean","description":"Resolves the internal name as a translation key when true; defaults to false.","markdownDescription":"Resolves the internal name as a translation key when true; defaults to false."},"blueprint_pools":{"description":"Blueprint pools containing the recipe; a pooled recipe needs a blueprint of one of them in the machine.","markdownDescription":"Blueprint pools containing the recipe; a pooled recipe needs a blueprint of one of them in the machine."},"blueprint_pools_528":{"description":"Replaces blueprint_pools while the enable_528 flag holds.","markdownDescription":"Replaces blueprint_pools while the enable_528 flag holds."},"auto_switch_group":{"description":"Translation key grouping recipes; the machine switches to the group member whose first item input matches its first input slot.","markdownDescription":"Translation key grouping recipes; the machine switches to the group member whose first item input matches its first input slot."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"}},"required":["duration","power"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:press"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_items":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Ordered counted item inputs; defaults to an empty list.","markdownDescription":"Ordered counted item inputs; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"},"stamp":{"description":"Required press stamp: flat, plate, wire, circuit, c357, c44, c50, c9, or printing1–printing8.","markdownDescription":"Required press stamp: `flat`, `plate`, `wire`, `circuit`, `c357`, `c44`, `c50`, `c9`, or `printing1`–`printing8`."}},"required":["input_items","output_items","stamp"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:purex"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_items":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Ordered counted item inputs; defaults to an empty list.","markdownDescription":"Ordered counted item inputs; defaults to an empty list."},"input_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid inputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid inputs with amount and pressure; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"output_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid outputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid outputs with amount and pressure; defaults to an empty list."},"duration":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Process duration in ticks; defaults to 0.\n\nRange: i32","markdownDescription":"Process duration in ticks; defaults to 0.\n\nRange: `i32`"},"power":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"HE demand; defaults to 0.\n\nRange: i64","markdownDescription":"HE demand; defaults to 0.\n\nRange: `i64`"},"icon":{"type":"object","properties":{"id":{"description":"Item ID.","markdownDescription":"Item ID."},"count":{"type":"number","minimum":1,"maximum":99,"description":"Stack size; default 1.\n\nRange: [1, 99]","markdownDescription":"Stack size; default 1.\n\nRange: [1, 99]"},"components":{"description":"Item-component values.","markdownDescription":"Item-component values."}},"required":["id"],"description":"Stack template displayed for the recipe; otherwise derived from the output.","markdownDescription":"Stack template displayed for the recipe; otherwise derived from the output."},"icon_from_input":{"type":"boolean","description":"Derives the display icon from the first item input when true; defaults to false.","markdownDescription":"Derives the display icon from the first item input when true; defaults to false."},"name_wrapper":{"description":"Translation key applied around the displayed recipe name.","markdownDescription":"Translation key applied around the displayed recipe name."},"custom_localization":{"type":"boolean","description":"Resolves the internal name as a translation key when true; defaults to false.","markdownDescription":"Resolves the internal name as a translation key when true; defaults to false."},"blueprint_pools":{"description":"Blueprint pools containing the recipe; a pooled recipe needs a blueprint of one of them in the machine.","markdownDescription":"Blueprint pools containing the recipe; a pooled recipe needs a blueprint of one of them in the machine."},"blueprint_pools_528":{"description":"Replaces blueprint_pools while the enable_528 flag holds.","markdownDescription":"Replaces blueprint_pools while the enable_528 flag holds."},"auto_switch_group":{"description":"Translation key grouping recipes; the machine switches to the group member whose first item input matches its first input slot.","markdownDescription":"Translation key grouping recipes; the machine switches to the group member whose first item input matches its first input slot."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"}},"required":["duration","power"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:pyro_oven"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_items":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Ordered counted item inputs; defaults to an empty list.","markdownDescription":"Ordered counted item inputs; defaults to an empty list."},"input_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid inputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid inputs with amount and pressure; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"output_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid outputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid outputs with amount and pressure; defaults to an empty list."},"duration":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Process duration in ticks; defaults to 0.\n\nRange: i32","markdownDescription":"Process duration in ticks; defaults to 0.\n\nRange: `i32`"},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"}},"required":["duration"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:radiolysis"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid inputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid inputs with amount and pressure; defaults to an empty list."},"output_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid outputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid outputs with amount and pressure; defaults to an empty list."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"}},"required":["input_fluids","output_fluids"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:rbmk_fuel_disassembly"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{}},"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:refinery"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid inputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid inputs with amount and pressure; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"output_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid outputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid outputs with amount and pressure; defaults to an empty list."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"}},"required":["input_fluids","output_fluids"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:rock_mill"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_items":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Ordered counted item inputs; defaults to an empty list.","markdownDescription":"Ordered counted item inputs; defaults to an empty list."},"input_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid inputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid inputs with amount and pressure; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"output_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid outputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid outputs with amount and pressure; defaults to an empty list."},"duration":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Process duration in ticks; defaults to 0.\n\nRange: i32","markdownDescription":"Process duration in ticks; defaults to 0.\n\nRange: `i32`"},"power":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"HE demand; defaults to 0.\n\nRange: i64","markdownDescription":"HE demand; defaults to 0.\n\nRange: `i64`"},"icon":{"type":"object","properties":{"id":{"description":"Item ID.","markdownDescription":"Item ID."},"count":{"type":"number","minimum":1,"maximum":99,"description":"Stack size; default 1.\n\nRange: [1, 99]","markdownDescription":"Stack size; default 1.\n\nRange: [1, 99]"},"components":{"description":"Item-component values.","markdownDescription":"Item-component values."}},"required":["id"],"description":"Stack template displayed for the recipe; otherwise derived from the output.","markdownDescription":"Stack template displayed for the recipe; otherwise derived from the output."},"icon_from_input":{"type":"boolean","description":"Derives the display icon from the first item input when true; defaults to false.","markdownDescription":"Derives the display icon from the first item input when true; defaults to false."},"name_wrapper":{"description":"Translation key applied around the displayed recipe name.","markdownDescription":"Translation key applied around the displayed recipe name."},"custom_localization":{"type":"boolean","description":"Resolves the internal name as a translation key when true; defaults to false.","markdownDescription":"Resolves the internal name as a translation key when true; defaults to false."},"blueprint_pools":{"description":"Blueprint pools containing the recipe; a pooled recipe needs a blueprint of one of them in the machine.","markdownDescription":"Blueprint pools containing the recipe; a pooled recipe needs a blueprint of one of them in the machine."},"blueprint_pools_528":{"description":"Replaces blueprint_pools while the enable_528 flag holds.","markdownDescription":"Replaces blueprint_pools while the enable_528 flag holds."},"auto_switch_group":{"description":"Translation key grouping recipes; the machine switches to the group member whose first item input matches its first input slot.","markdownDescription":"Translation key grouping recipes; the machine switches to the group member whose first item input matches its first input slot."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"}},"required":["duration","power"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:rotary_furnace"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_items":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Ordered counted item inputs; defaults to an empty list.","markdownDescription":"Ordered counted item inputs; defaults to an empty list."},"input_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid inputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid inputs with amount and pressure; defaults to an empty list."},"duration":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Process duration in ticks; use a positive value for timed processing.\n\nRange: i32","markdownDescription":"Process duration in ticks; use a positive value for timed processing.\n\nRange: `i32`"},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"},"output_material":{"type":"object","properties":{"material":{"description":"NTM material name.","markdownDescription":"NTM material name."},"amount":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Quantity in NTM material units.\n\nRange: i32","markdownDescription":"Quantity in NTM material units.\n\nRange: `i32`"}},"required":["material","amount"],"description":"Material-stack output; the buffer holds 10,368 units of one material.","markdownDescription":"Material-stack output; the buffer holds 10,368 units of one material."},"steam":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Base steam use per working tick, multiplied by 1 + 10 _10 h for fuel heat h 1; the effective use must fit the 12,000 mB tank; default 0.\n\nRange: i32","markdownDescription":"Base steam use per working tick, multiplied by 1 + 10 _10 h for fuel heat h 1; the effective use must fit the 12,000 mB tank; default 0.\n\nRange: `i32`"}},"required":["duration","output_material"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:scraps_split"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{}},"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:shredder"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_items":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Ordered counted item inputs; defaults to an empty list.","markdownDescription":"Ordered counted item inputs; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"}},"required":["input_items","output_items"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:silex"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_items":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Ordered counted item inputs; defaults to an empty list.","markdownDescription":"Ordered counted item inputs; defaults to an empty list."},"input_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid inputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid inputs with amount and pressure; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"},"fluid_consumed":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Internal-buffer amount consumed per output; use [1, 16000] mB.\n\nRange: i32","markdownDescription":"Internal-buffer amount consumed per output; use [1, 16000] mB.\n\nRange: `i32`"},"fluid_produced":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Peroxide-to-buffer load per input item; use [1, 16000] mB. Fluid-input recipes load at 50 mB/t.\n\nRange: i32","markdownDescription":"Peroxide-to-buffer load per input item; use [1, 16000] mB. Fluid-input recipes load at 50 mB/t.\n\nRange: `i32`"},"laser_strength":{"description":"Minimum laser wavelength: null (no laser needed), ir, visible, uv, gamma, or drx. Each step above the minimum doubles progress speed.","markdownDescription":"Minimum laser wavelength: `null` (no laser needed), `ir`, `visible`, `uv`, `gamma`, or `drx`. Each step above the minimum doubles progress speed."}},"required":["output_items","fluid_consumed","fluid_produced","laser_strength"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:soldering"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_items":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Ordered counted item inputs; defaults to an empty list.","markdownDescription":"Ordered counted item inputs; defaults to an empty list."},"input_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid inputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid inputs with amount and pressure; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"duration":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Process duration in ticks; defaults to 0.\n\nRange: i32","markdownDescription":"Process duration in ticks; defaults to 0.\n\nRange: `i32`"},"power":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"HE demand; defaults to 0.\n\nRange: i64","markdownDescription":"HE demand; defaults to 0.\n\nRange: `i64`"},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"},"pcb":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Counted ingredients in the PCB input category; default empty.","markdownDescription":"Counted ingredients in the PCB input category; default empty."},"solder":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Counted ingredients in the solder input category; default empty.","markdownDescription":"Counted ingredients in the solder input category; default empty."}},"required":["output_items","duration","power"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:solidification"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid inputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid inputs with amount and pressure; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"}},"required":["input_fluids","output_items"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:space_assembler"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_items":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Ordered counted item inputs; defaults to an empty list.","markdownDescription":"Ordered counted item inputs; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"duration":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Process duration in ticks; defaults to 0.\n\nRange: i32","markdownDescription":"Process duration in ticks; defaults to 0.\n\nRange: `i32`"},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"}},"required":["input_items","output_items","duration"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:supercomputer"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_items":{"type":"array","items":{"type":"object","properties":{"ingredient":{"description":"Item ID, item tag, or loader ingredient object.","markdownDescription":"Item ID, item tag, or loader ingredient object."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, i32::MAX]","markdownDescription":"Items required from one stack; default 1. The item stack limit bounds a usable count.\n\nRange: [1, `i32::MAX`]"},"components":{"description":"Exact item-component values.","markdownDescription":"Exact item-component values."},"predicates":{"description":"Item-component predicates.","markdownDescription":"Item-component predicates."}},"required":["ingredient"]},"description":"Ordered counted item inputs; defaults to an empty list.","markdownDescription":"Ordered counted item inputs; defaults to an empty list."},"input_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid inputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid inputs with amount and pressure; defaults to an empty list."},"output_items":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":99},"components":{"type":"object"},"chance":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["id"]},{"type":"array","items":{"type":"object","properties":{"data":{"type":"object"},"weight":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["data","weight"]}}]},"description":"Fixed or weighted item-output positions; defaults to an empty list.","markdownDescription":"Fixed or weighted item-output positions; defaults to an empty list."},"output_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid outputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid outputs with amount and pressure; defaults to an empty list."},"duration":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Process duration in ticks; defaults to 0.\n\nRange: i32","markdownDescription":"Process duration in ticks; defaults to 0.\n\nRange: `i32`"},"power":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"HE demand; defaults to 0.\n\nRange: i64","markdownDescription":"HE demand; defaults to 0.\n\nRange: `i64`"},"icon":{"type":"object","properties":{"id":{"description":"Item ID.","markdownDescription":"Item ID."},"count":{"type":"number","minimum":1,"maximum":99,"description":"Stack size; default 1.\n\nRange: [1, 99]","markdownDescription":"Stack size; default 1.\n\nRange: [1, 99]"},"components":{"description":"Item-component values.","markdownDescription":"Item-component values."}},"required":["id"],"description":"Stack template displayed for the recipe; otherwise derived from the output.","markdownDescription":"Stack template displayed for the recipe; otherwise derived from the output."},"icon_from_input":{"type":"boolean","description":"Derives the display icon from the first item input when true; defaults to false.","markdownDescription":"Derives the display icon from the first item input when true; defaults to false."},"name_wrapper":{"description":"Translation key applied around the displayed recipe name.","markdownDescription":"Translation key applied around the displayed recipe name."},"custom_localization":{"type":"boolean","description":"Resolves the internal name as a translation key when true; defaults to false.","markdownDescription":"Resolves the internal name as a translation key when true; defaults to false."},"blueprint_pools":{"description":"Blueprint pools containing the recipe; a pooled recipe needs a blueprint of one of them in the machine.","markdownDescription":"Blueprint pools containing the recipe; a pooled recipe needs a blueprint of one of them in the machine."},"blueprint_pools_528":{"description":"Replaces blueprint_pools while the enable_528 flag holds.","markdownDescription":"Replaces blueprint_pools while the enable_528 flag holds."},"auto_switch_group":{"description":"Translation key grouping recipes; the machine switches to the group member whose first item input matches its first input slot.","markdownDescription":"Translation key grouping recipes; the machine switches to the group member whose first item input matches its first input slot."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"}},"required":["duration","power"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:tag_result"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"ingredients":{"description":"1–9 ingredients; each entry consumes one item from its assigned slot.","markdownDescription":"1–9 ingredients; each entry consumes one item from its assigned slot."},"result":{"type":"object","properties":{"tag":{"description":"Item tag used to select the result.","markdownDescription":"Item tag used to select the result."},"count":{"type":"integer","minimum":1,"maximum":2147483647,"description":"Result count; default 1.\n\nRange: [1, i32::MAX]","markdownDescription":"Result count; default 1.\n\nRange: [1, `i32::MAX`]"}},"required":["tag"],"description":"Selects an item from a tag.","markdownDescription":"Selects an item from a tag."},"category":{"description":"Recipe-book category: building, redstone, equipment, or misc; default misc.","markdownDescription":"Recipe-book category: `building`, `redstone`, `equipment`, or `misc`; default `misc`."},"group":{"description":"Recipe-book group string; default empty.","markdownDescription":"Recipe-book group string; default empty."},"show_notification":{"type":"boolean","description":"Shows the recipe-unlock notification; default true.","markdownDescription":"Shows the recipe-unlock notification; default `true`."}},"required":["ingredients","result"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbm:vacuum_refinery"}},"required":["type"]},"then":{"type":"object","properties":{"type":{},"fabric:load_conditions":{},"neoforge:conditions":{},"name":{"description":"Internal lookup name; defaults to the last segment of the recipe resource path.","markdownDescription":"Internal lookup name; defaults to the last segment of the recipe resource path."},"input_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid inputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid inputs with amount and pressure; defaults to an empty list."},"output_fluids":{"type":"array","items":{"type":"object","properties":{"type":{"description":"Registered fluid ID.","markdownDescription":"Registered fluid ID."},"amount":{"type":"integer","minimum":-9223372036854776000,"maximum":9223372036854776000,"description":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: i64","markdownDescription":"Amount in mB; use [1, tank\\ capacity] for transfers because machine code casts to int.\n\nRange: `i64`"},"pressure":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Pressure level; default 0.\n\nRange: i32","markdownDescription":"Pressure level; default 0.\n\nRange: `i32`"}},"required":["type","amount"]},"description":"Ordered fluid outputs with amount and pressure; defaults to an empty list.","markdownDescription":"Ordered fluid outputs with amount and pressure; defaults to an empty list."},"order":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: i32","markdownDescription":"Sort position within the recipe table; lower values first, default 2147483647.\n\nRange: `i32`"}},"required":["input_fluids","output_fluids"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"hbmspace:alkylation"}},"required":["type"]},"then":{"not":{},"errorMessage":"`hbmspace:alkylation` requires Space, which has no release for NTM 1.0.1.","doNotSuggest":true}},{"if":{"properties":{"type":{"const":"hbmspace:atmosphere"}},"required":["type"]},"then":{"not":{},"errorMessage":"`hbmspace:atmosphere` requires Space, which has no release for NTM 1.0.1.","doNotSuggest":true}},{"if":{"properties":{"type":{"const":"hbmspace:cryo_distill"}},"required":["type"]},"then":{"not":{},"errorMessage":"`hbmspace:cryo_distill` requires Space, which has no release for NTM 1.0.1.","doNotSuggest":true}},{"if":{"properties":{"type":{"const":"hbmspace:vacuum_circuit"}},"required":["type"]},"then":{"not":{},"errorMessage":"`hbmspace:vacuum_circuit` requires Space, which has no release for NTM 1.0.1.","doNotSuggest":true}},{"if":{"properties":{"type":{"const":"leafia:dfc"}},"required":["type"]},"then":{"not":{},"errorMessage":"`leafia:dfc` requires Cursed, which has no release for NTM 1.0.1.","doNotSuggest":true}},{"if":{"properties":{"type":{"const":"leafia:rtg_blast_furnace"}},"required":["type"]},"then":{"not":{},"errorMessage":"`leafia:rtg_blast_furnace` requires Cursed, which has no release for NTM 1.0.1.","doNotSuggest":true}},{"if":{"properties":{"type":{"const":"leafia:salt_separator"}},"required":["type"]},"then":{"not":{},"errorMessage":"`leafia:salt_separator` requires Cursed, which has no release for NTM 1.0.1.","doNotSuggest":true}},{"if":{"properties":{"type":{"const":"leafia:sol_blaster"}},"required":["type"]},"then":{"not":{},"errorMessage":"`leafia:sol_blaster` requires Cursed, which has no release for NTM 1.0.1.","doNotSuggest":true}}]}