Custom world generation/block predicate


 * : The type of the block predicate. One of  (always true),   (all the specified block predicates need to matche),   (must matches at least one of the specified block predicates),   (checks whether the block at a location has a full block supporting surface in a direction),   (whether the Y level is in the world), ,  ,  ,   (invert the predicate),   (material is replacable),   (material is solid), or.
 * If  is   or , additional fields are as follows :
 * : (Can be empty) The child predicates. If used with, all the childs need to match. If used with  , at least one of the childs needs to match.
 * : A block predicate.
 * If  is ,  ,  , additional fields are as follows :
 * : (optional, defaults to [0,0,0]) A list of 3 integers specifying an [X, Y, Z] block position offset to check.
 * : Value between -16 and 16 (inclusive).
 * If  is , additional fields are as follows :
 * : (optional, defaults to [0,0,0]) A list of 3 integers specifying an [X, Y, Z] block position offset to check.
 * : Value between -16 and 16 (inclusive).
 * : The direction of the block to check if it is sturdy. With sturdy is meant that the block's block supporting box is full in the direction.
 * If  is  :
 * : (optional, defaults to [0,0,0]) A list of 3 integers specifying an [X, Y, Z] block position offset to check.
 * : Value between -16 and 16 (inclusive).
 * : The block tag without  to check.
 * If  is , additional fields are as follows :
 * : (optional, defaults to [0,0,0]) A list of 3 integers specifying an [X, Y, Z] block position offset to check.
 * : Value between -16 and 16 (inclusive).
 * : The blocks that will match. Cn be a block ID or a block tag, or a list of block IDs.
 * If  is , additional fields are as follows :
 * : (optional, defaults to [0,0,0]) A list of 3 integers specifying an [X, Y, Z] block position offset to check.
 * : Value between -16 and 16 (inclusive).
 * : The fluids that will match. Cn be a fluid ID or a fluid tag, or a list of fluid IDs.
 * If  is , additional fields are as follows :
 * : The block predicate to invert.
 * If  is , additional fields are as follows :
 * : (optional, defaults to [0,0,0]) A list of 3 integers specifying an [X, Y, Z] block position offset to check.
 * : Value between -16 and 16 (inclusive).
 * : Checks whether this block state can survive in the specified position.
 * : Value between -16 and 16 (inclusive).
 * : Checks whether this block state can survive in the specified position.