{
	"$schema": "https://json-schema.org/draft/2020-12/schema",
	"additionalProperties": false,
	"properties": {
		"$schema": {
			"type": "string"
		},
		"actions": {
			"items": {
				"additionalProperties": false,
				"properties": {
					"inputs": {
						"items": {
							"anyOf": [
								{
									"additionalProperties": false,
									"properties": {
										"amount": {
											"type": "number"
										},
										"id": {
											"type": "string"
										},
										"type": {
											"const": "crystal",
											"type": "string"
										}
									},
									"required": ["amount", "id", "type"],
									"type": "object"
								},
								{
									"additionalProperties": false,
									"properties": {
										"amount": {
											"type": "number"
										},
										"id": {
											"enum": [
												"bingo-point",
												"bit",
												"coin",
												"copper",
												"forge-second",
												"gem",
												"mote",
												"north-star",
												"pest",
												"second",
												"usd"
											],
											"type": "string"
										},
										"type": {
											"const": "currency",
											"type": "string"
										}
									},
									"required": ["amount", "id", "type"],
									"type": "object"
								},
								{
									"additionalProperties": false,
									"properties": {
										"amount": {
											"type": "number"
										},
										"id": {
											"type": "string"
										},
										"type": {
											"const": "item",
											"type": "string"
										}
									},
									"required": ["amount", "id", "type"],
									"type": "object"
								}
							]
						},
						"type": "array"
					},
					"outputs": {
						"items": {
							"anyOf": [
								{
									"additionalProperties": false,
									"properties": {
										"amount": {
											"type": "number"
										},
										"id": {
											"type": "string"
										},
										"type": {
											"const": "crystal",
											"type": "string"
										}
									},
									"required": ["amount", "id", "type"],
									"type": "object"
								},
								{
									"additionalProperties": false,
									"properties": {
										"amount": {
											"type": "number"
										},
										"id": {
											"enum": [
												"bingo-point",
												"bit",
												"coin",
												"copper",
												"gem",
												"mote",
												"north-star",
												"pest",
												"second",
												"usd"
											],
											"type": "string"
										},
										"type": {
											"const": "currency",
											"type": "string"
										}
									},
									"required": ["amount", "id", "type"],
									"type": "object"
								},
								{
									"additionalProperties": false,
									"properties": {
										"amount": {
											"type": "number"
										},
										"id": {
											"type": "string"
										},
										"type": {
											"const": "item",
											"type": "string"
										}
									},
									"required": ["amount", "id", "type"],
									"type": "object"
								}
							]
						},
						"type": "array"
					},
					"place": {
						"items": {
							"anyOf": [
								{
									"additionalProperties": false,
									"properties": {
										"left": {
											"additionalProperties": false,
											"properties": {
												"amount": {
													"type": "number"
												},
												"id": {
													"type": "string"
												},
												"type": {
													"const": "item",
													"type": "string"
												}
											},
											"required": ["amount", "id", "type"],
											"type": "object"
										},
										"right": {
											"additionalProperties": false,
											"properties": {
												"amount": {
													"type": "number"
												},
												"id": {
													"type": "string"
												},
												"type": {
													"const": "item",
													"type": "string"
												}
											},
											"required": ["amount", "id", "type"],
											"type": "object"
										},
										"type": {
											"const": "anvil",
											"type": "string"
										}
									},
									"required": ["left", "right", "type"],
									"type": "object"
								},
								{
									"additionalProperties": false,
									"properties": {
										"type": {
											"const": "forge",
											"type": "string"
										}
									},
									"required": ["type"],
									"type": "object"
								},
								{
									"additionalProperties": false,
									"properties": {
										"id": {
											"type": "string"
										},
										"type": {
											"const": "npc",
											"type": "string"
										}
									},
									"required": ["id", "type"],
									"type": "object"
								},
								{
									"additionalProperties": false,
									"properties": {
										"type": {
											"const": "website",
											"type": "string"
										},
										"url": {
											"format": "uri",
											"type": "string"
										}
									},
									"required": ["type", "url"],
									"type": "object"
								},
								{
									"additionalProperties": false,
									"properties": {
										"grid": {
											"items": {
												"anyOf": [
													{
														"additionalProperties": false,
														"properties": {
															"amount": {
																"type": "number"
															},
															"id": {
																"type": "string"
															},
															"type": {
																"const": "item",
																"type": "string"
															}
														},
														"required": ["amount", "id", "type"],
														"type": "object"
													},
													{
														"type": "null"
													}
												]
											},
											"maxItems": 9,
											"minItems": 9,
											"type": "array"
										},
										"type": {
											"const": "workbench",
											"type": "string"
										}
									},
									"required": ["grid", "type"],
									"type": "object"
								}
							]
						},
						"type": "array"
					},
					"requirements": {
						"items": {
							"anyOf": [
								{
									"additionalProperties": false,
									"properties": {
										"collection": {
											"enum": ["GEMSTONE"],
											"type": "string"
										},
										"tier": {
											"type": "number"
										},
										"type": {
											"const": "COLLECTION",
											"type": "string"
										}
									},
									"required": ["collection", "tier", "type"],
									"type": "object"
								},
								{
									"additionalProperties": false,
									"properties": {
										"tier": {
											"type": "number"
										},
										"type": {
											"const": "HEART_OF_THE_MOUNTAIN",
											"type": "string"
										}
									},
									"required": ["tier", "type"],
									"type": "object"
								},
								{
									"additionalProperties": false,
									"properties": {
										"level": {
											"type": "number"
										},
										"skill": {
											"enum": ["MINING"],
											"type": "string"
										},
										"type": {
											"const": "SKILL",
											"type": "string"
										}
									},
									"required": ["level", "skill", "type"],
									"type": "object"
								}
							]
						},
						"type": "array"
					}
				},
				"required": ["inputs", "outputs", "place"],
				"type": "object"
			},
			"type": "array"
		}
	},
	"required": ["actions"],
	"type": "object"
}
