Minecraft wiki entry for Custom_world_generation, associated text: The root tag
 processors: A list of processors
 A processor
 processor_type: Can be minecraft:rule, minecraft:block_rot, minecraft:block_age, minecraft:block_ignore, minecraft:blackstone_replace, minecraft:jigsaw_replacement, minecraft:lava_submerged_block, minecraft:gravity or minecraft:nop.
If processor_type is minecraft:block_rot:
 integrity: A number between 0 and 1 [needs testing]
If processor_type is minecraft:rule:
 rules: A list of rules to apply from top to bottom [needs testing]
 A rule
 position_predicate: The predicates to apply to the block's position [needs testing], see below for a list of valid predicates
 input_predicate: The predicates to apply to the block that is placed
 location_predicate: The predicates to apply to the block before the structure is generated [needs testing]
 output_state: The block that is placed if all conditions are met
 Name: ID of the block
 Properties: Block states
 state: A block state key and its value
 output_nbt (optional): The nbt data of the block placed if all conditions are met. Needs to be in JSON form. [needs testing] (never used in vanilla)
If processor_type is minecraft:block_age:
 mossiness: Values below 0 is treated as 0; values above 1 is treated as 1.[needs testing]
If processor_type is minecraft:block_ignore:
 blocks: [needs testing]
 A block
 Name: The namespaced id of the block to use.
 Properties: Block states
 state: A block state key and its value.
If processor_type is minecraft:gravity:
 heightmap: Must be one of "WORLD_SURFACE_WG", "WORLD_SURFACE", "OCEAN_FLOOR_WG", "OCEAN_FLOOR", "MOTION_BLOCKING", or "MOTION_BLOCKING_NO_LEAVES".
 offset: [needs testing]