Custom world generation/template pool


 * The root tag
 * The namespaced id of the pool. Required, but having no effect at all.
 * The fallback pool. Should be an ID of a structure pool. Template in the fallback pool generates in the following two cases: 1. When the generation of jigsaw reaches the specified level/depth number, the fallback pool generates at the end of the last level. 2. All the elements in this structure pool can not be successfully generated. In the above two cases, the game will try to generate a template from the fallback pool. When trying to generate a template from the fallback pool, if all the elements in the fallback pool cannot be generated successfully, nothing will be generated.
 * A list of elements to randomly select from. For the start pool of the jigsaw structure feature, if the name of the start jigsaw block is specified, but there's no jigsaw block with the corresponding name in the selected element, the whole structure feature fails to generate. For the non-start pool, a selected element successfully generates when the following conditions are met: 1. There is a jigsaw block with the corresponding name and corresponding direction (the horizontal jigsaw blocks correspond to each other, and a up facing jigsaw block corresponds to a down facing block, while a down facing block corresponds to a up facing block) in the element. 2. The 3D Chebyshev distance between the element and the start of the structure doesn't exceed the maximum distance specified in the configured structure feature, or doesn't exceed 128 when generated by commands or jigsaw block GUI. 3. The element will not overlap with other generated jigsaws, unless the block pointed by the jigsaw block is inside the current jigsaw. 4. If the block pointed by the jigsaw block is inside the current jigsaw, then this element and all the jigsaws generated later by this element must be completely inside the jigsaw where this jigsaw block is located. If the element fails to generate, it will try again to generate another element in the list. If all of the elements in the list cannot be generated successfully, the fallback pool will be used.
 * An element.
 * How likely this element is to be chosen when using this pool. Value between 1 and 150 (inclusive).
 * The properties of this element.
 * Can be to place a fixed structure (like a house), or  to match the terrain height (like a village road).
 * Can be to generate nothing,  to generate a placed feature,  to generate multiple elements one after another (lower elements replace their front ones), and  or  to generate a structure template. The difference between legacy_single_pool_element and single_pool_element, is that the legacy_single_pool_element will not replace existing blocks with air, and the single_pool_element will replace blocks with air and relies on the structure_void block to avoid not replacing blocks.
 * If is, additional fields are as follows :
 * The namespaced id of the placed feature.
 * If is, additional fields are as follows :
 * A list of elements to choose from.
 * An element, with the same format above.
 * If is  or, additional fields are as follows :
 * The namespaced id of the structure template to generate.
 * (Required, but can be empty) The namespaced ID of a processor list, or a object of a processor list, or a list of processors.