Custom world generation/template pool


 * The root tag
 * The namespaced id of the pool
 * Can set to another template pool, which generates when the original pool cannot generate at the end of all layers. Used in the vanilla datapack to generate the end of village streets, aka terminators in structure files.
 * A list of structures to choose from
 * How likely this element is to be chosen when using this pool
 * The properties of this element
 * Can be to generate no structure,  when  is used,  when  are used, and  or  when  is used . 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 (so is not suitable for building underground) and the single_pool_element will replace blocks with air and relies on the structure_void block to avoid not replacing blocks.
 * The namespaced id of the feature.
 * The namespaced id of the structure to place
 * Can be to place a fixed structure (like a house), or  to match the terrain height like a village road
 * The namespaced ID of a processor if this is a string
 * A list of processors to use
 * The namespaced id of the processor to use
 * A list of structures to choose from
 * How likely this element is to be chosen when using this pool
 * The namespaced id of the structure to place
 * Can be or
 * Can be to generate no structure,  when elements is used, and  or  when location is used
 * The namespaced ID of a processor if this is a string
 * A list of processors to use
 * The namespaced id of the processor to use
 * Can be to generate no structure,  when elements is used, and  or  when location is used
 * The namespaced ID of a processor if this is a string
 * A list of processors to use
 * The namespaced id of the processor to use
 * The namespaced id of the processor to use