Custom world generation/data types


 * This structure is used to define more advanced settings for generating a block state.
 * The type of provider to use. Must be one of,  ,  ,  , or.
 * If  is   or  :
 * A blockstate
 * The namespaced id of the block to use.
 * Block states
 * A block state key and its value.
 * If  is  :
 * A list of blockstates to choose from.
 * A blockstate and its corresponding weight.
 * The weight of this blockstate to be randomly chosen; a higher weight increases the chance.
 * A blockstate
 * The namespaced id of the block to use.
 * Block states
 * A block state key and its value.


 * This structure represents a randomly generated integer between  and , inclusive, where each number in the range has equal probability.   must always be greater than or equal to 0. Additionally, different configuration settings often place extra restrictions on the range of these values; these restrictions are expressed as  ,  , and  . All of these restrictions are inclusive ranges. If these restrictions are not stated, then any value of   and any non-negative value of   is allowed. Alternatively, the compound tag can be substituted for an   tag, in which case the provided value is used as   and   is set to 0, effectively making this the same as a constant integer. In this case,   and   still apply to this value if they are provided.
 * The lowest number which can be generated.
 * The size of the inclusive range to generate numbers within.