{
	"pools": {
		"$dynamic.list.next_index": {
			"conditions": "$loot_table.conditions",
			"tiers": {
				"initial_range": "$general.number",
				"bonus_rolls": "$general.number",
				"bonus_chance": "$general.decimal"
			},
			"rolls": {
				"@import.value.number": "$general.number",
				"min": "$general.number",
				"max": "$general.number",

				"@meta": { 
					"validate": [
						{
							"confirm": "Bridge.Node.children.length === 0 && (Bridge.Node.data === '' || Number.isNaN(Number(Bridge.Node.data)))",
							"then": {
								"show": true,
								"message": "Invalid data type: Expected number or min/max object"
							}
						},
						{
							"confirm": "Bridge.Node.children.length > 0 && (Bridge.Node.children.length !== 2 || !Bridge.Node.get('min') || !Bridge.Node.get('max'))",
							"then": {
								"show": true,
								"message": "Invalid data type: Expected number or min/max object"
							}
						}
					]
				}			
			},
			"entries": {
				"$dynamic.list.next_index": {
					"type": [
						"item",
						"loot_table",
						"empty"
					],
					"$dynamic_template": {
						"$key": "$dynamic.children.type",
						"item": {
							"name": "$general.block_identifier and $general.item_identifier",
							"weight": "$general.number",
							"functions": "$loot_table.functions",
							"pools": "$loot_table.main.pools"
						},
						"loot_table": {
							"name": "$dynamic.loot_table_files",
							"weight": "$general.number"
						},
						"empty": {
							"weight": "$general.number"
						}
					}
				}
			}
		}
	}
}
