{"$schema":"http://json-schema.org/draft-07/schema","$id":"blockception.minecraft.behavior.worldgen.processors.processor_list","type":"object","title":"Processor List","description":"Rules used by Jigsaw Structures to determine which blocks to modify or replace when placing a Structure Template in the world.","required":["format_version","minecraft:processor_list"],"additionalProperties":false,"properties":{"format_version":{"$ref":"#/definitions/A"},"minecraft:processor_list":{"$ref":"#/definitions/B"}},"definitions":{"A":{"title":"Format Version","description":"A version that tells minecraft what type of data format can be expected when reading this file.","pattern":"^([1-9]+)\\.([0-9]+)\\.([0-9]+)$","type":"string","default":"1.21.50","examples":["1.21.50","1.20.81","1.20.40","1.19.0","1.12.0","1.10.0","1.8.0"],"defaultSnippets":[{"label":"New Format version","body":"1.${1|8,10,12,17,18,19,20|}.${3|2|0|}"}]},"D_block_specifier":{"anyOf":[{"$ref":"#/definitions/E"},{"type":"object","additionalProperties":false,"properties":{"name":{"$ref":"#/definitions/E"},"states":{"type":"object","additionalProperties":{"oneOf":[{"type":"boolean"},{"type":"integer"},{"type":"string"}]}}}}]},"D_rule":{"properties":{"block_entity_modifier":{"oneOf":[{"$ref":"#/definitions/D_passthrough"},{"$ref":"#/definitions/D_append_loot"}]},"input_predicate":{"oneOf":[{"$ref":"#/definitions/D_always_true"},{"$ref":"#/definitions/D_block_match"},{"$ref":"#/definitions/D_random_block_match"},{"$ref":"#/definitions/D_tag_match"}]},"location_predicate":{"oneOf":[{"$ref":"#/definitions/D_always_true"},{"$ref":"#/definitions/D_block_match"},{"$ref":"#/definitions/D_random_block_match"},{"$ref":"#/definitions/D_tag_match"}]},"output_state":{"$ref":"#/definitions/D_block_specifier"},"position_predicate":{"oneOf":[{"$ref":"#/definitions/D_always_true"},{"$ref":"#/definitions/D_axis_aligned_linear_pos"}]}},"required":["output_state"]},"D_append_loot":{"title":"Append Loot","description":"","type":"object","additionalProperties":false,"required":["type","loot_table"],"properties":{"loot_table":{"title":"Loot Table","description":"","type":"string"},"type":{"title":"Type","description":"","type":"string","const":"minecraft:append_loot"}}},"D_passthrough":{"title":"Passthrough","description":"","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"title":"Type","description":"","type":"string","const":"minecraft:passthrough"}}},"D_always_true":{"title":"Always True","description":"","type":"object","additionalProperties":false,"required":["predicate_type"],"properties":{"predicate_type":{"title":"Predicate Type","type":"string","const":"minecraft:always_true"}}},"D_block_match":{"title":"Block Match","type":"object","properties":{"block":{"type":"string"},"predicate_type":{"title":"Predicate Type","type":"string","const":"minecraft:block_match"}},"required":["block","predicate_type"]},"D_random_block_match":{"title":"Random Block Match","type":"object","properties":{"block":{"type":"string"},"predicate_type":{"title":"Predicate Type","type":"string","const":"minecraft:random_block_match"},"probability":{"type":"number","minimum":0.0,"exclusiveMaximum":1.0}},"required":["block","predicate_type","probability"]},"D_tag_match":{"title":"Tag Match","type":"object","properties":{"predicate_type":{"title":"Predicate Type","type":"string","const":"minecraft:tag_match"},"tag":{"type":"string"}},"required":["predicate_type","tag"]},"D_axis_aligned_linear_pos":{"title":"Axis Aligned Linear","type":"object","properties":{"axis":{"title":"Axis","description":"","type":"string","enum":["x","y","z"]},"max_chance":{"title":"Max Chance","description":"","type":"number","minimum":0.0,"exclusiveMaximum":1.0},"max_dist":{"title":"Max Dist","description":"","type":"integer","minimum":0.0},"min_chance":{"title":"Min Chance","description":"","type":"number","minimum":0.0,"exclusiveMaximum":1.0},"min_dist":{"title":"Min Dist","description":"","type":"integer","minimum":0.0},"predicate_type":{"title":"Predicate Type","description":"","type":"string","const":"minecraft:axis_aligned_linear_pos"}},"required":["predicate_type"]},"E":{"description":"A minecraft block identifier.","examples":["namespace:block"],"pattern":"^[0-9a-zA-Z:_\\.\\-]+$","title":"Block Identifier","type":"string","defaultSnippets":[{"label":"New Identifier","body":"$1:$2"}]},"D":{"title":"Rule","type":"object","additionalProperties":false,"properties":{"processor_type":{"title":"Processor Type","type":"string","const":"minecraft:rule"},"rules":{"title":"Rules","type":"array","items":{"$ref":"#/definitions/D_rule"}}},"required":["processor_type","rules"]},"G":{"title":"Block Ignore","type":"object","properties":{"blocks":{"title":"Blocks","type":"array","items":{"type":"string"}},"processor_type":{"title":"Processor Type","type":"string","const":"minecraft:block_ignore"}},"required":["blocks","processor_type"]},"H":{"title":"Protected Blocks","type":"object","properties":{"processor_type":{"title":"Processor Type","type":"string","const":"minecraft:protected_blocks"},"value":{"type":"string"}},"required":["processor_type","value"]},"F":{"title":"Capped","type":"object","properties":{"delegate":{"oneOf":[{"$ref":"#/definitions/D"},{"$ref":"#/definitions/G"},{"$ref":"#/definitions/H"}]},"limit":{"oneOf":[{"type":"integer"},{"title":"Constant Integer","description":"","type":"object","additionalProperties":false,"properties":{"type":{"title":"Type","description":"","type":"string","const":"constant"},"value":{"title":"Value","description":"","type":"integer"}},"required":["type","value"]},{"title":"Uniform Integer","type":"object","properties":{"max_inclusive":{"title":"Max Inclusive","description":"","type":"integer"},"min_inclusive":{"title":"Min Inclusive","description":"","type":"integer"},"type":{"title":"Type","description":"","type":"string","const":"uniform"}},"required":["max_inclusive","min_inclusive","type"]}]},"processor_type":{"title":"Processor Type","type":"string","const":"minecraft:capped"}},"required":["delegate","limit","processor_type"]},"C":{"title":"Processors","description":"","type":"object","properties":{"processor_type":{"title":"Processor Type","type":"string","enum":["minecraft:rule","minecraft:capped","minecraft:block_ignore","minecraft:protected_blocks"]}},"allOf":[{"if":{"properties":{"processor_type":{"const":"minecraft:rule"}}},"then":{"$ref":"#/definitions/D"}},{"if":{"properties":{"processor_type":{"const":"minecraft:capped"}}},"then":{"$ref":"#/definitions/F"}},{"if":{"properties":{"processor_type":{"const":"minecraft:block_ignore"}}},"then":{"$ref":"#/definitions/G"}},{"if":{"properties":{"processor_type":{"const":"minecraft:protected_blocks"}}},"then":{"$ref":"#/definitions/H"}}]},"B":{"type":"object","title":"Processor List","additionalProperties":false,"required":["description","processors"],"properties":{"description":{"title":"Description","description":"The description of this jigsaw.","type":"object","additionalProperties":false,"properties":{"identifier":{"title":"Identifier","description":"Identifier of the Processor List. This is referenced by Template Pools when pairing processors with Structure Templates.","type":"string"}}},"processors":{"title":"Processors","description":"A list of processors.","type":"array","minItems":1,"items":{"$ref":"#/definitions/C"}}}}}}