{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "trapshazards.json", "version": "1.1.2", "type": "object", "definitions": { "trap": { "oneOf": [ { "description": "Older format, used in DMG", "type": "object", "properties": { "name": { "type": "string" }, "trapHazType": { "type": "string", "enum": [ "MECH", "MAG" ] }, "source": { "type": "string" }, "page": { "type": "integer" }, "entries": { "type": "array", "items": { "$ref": "entry.json" } }, "srd": {"$ref": "util.json#/definitions/srd"} }, "additionalProperties": false, "required": [ "name", "trapHazType", "source", "entries" ] }, { "description": "XGE \"Traps Revisited\" Simple traps", "type": "object", "properties": { "name": { "type": "string" }, "trapHazType": { "const": "SMPL" }, "source": { "type": "string" }, "page": { "type": "integer" }, "entries": { "type": "array", "items": { "$ref": "entry.json" } }, "tier": { "type": "integer", "minimum": 1, "maximum": 4 }, "threat": { "type": "integer", "minimum": 1, "maximum": 3 }, "trigger": { "type": "array", "items": { "$ref": "entry.json" } }, "effect": { "type": "array", "items": { "$ref": "entry.json" } }, "countermeasures": { "type": "array", "items": { "$ref": "entry.json" } }, "srd": {"$ref": "util.json#/definitions/srd"} }, "additionalProperties": false, "required": [ "name", "trapHazType", "source", "entries", "threat", "trigger", "effect", "countermeasures" ] }, { "description": "XGE \"Traps Revisited\" Complex traps", "type": "object", "properties": { "name": { "type": "string" }, "trapHazType": { "const": "CMPX" }, "source": { "type": "string" }, "page": { "type": "integer" }, "entries": { "type": "array", "items": { "$ref": "entry.json" } }, "tier": { "type": "integer", "minimum": 1, "maximum": 4 }, "threat": { "type": "integer", "minimum": 1, "maximum": 3 }, "trigger": { "type": "array", "items": { "$ref": "entry.json" } }, "initiative": { "type": "integer", "minimum": 1, "maximum": 3 }, "initiativeNote": { "$ref": "entry.json" }, "eActive": { "type": "array", "items": { "$ref": "entry.json" } }, "eDynamic": { "type": "array", "items": { "$ref": "entry.json" } }, "eConstant": { "type": "array", "items": { "$ref": "entry.json" } }, "countermeasures": { "type": "array", "items": { "$ref": "entry.json" } }, "srd": {"$ref": "util.json#/definitions/srd"} }, "additionalProperties": false, "required": [ "name", "trapHazType", "source", "entries", "tier", "threat", "trigger", "initiative", "countermeasures" ] } ] }, "hazard": { "type": "object", "properties": { "name": { "type": "string" }, "trapHazType": { "type": "string", "enum": [ "WTH", "ENV", "WLD", "GEN", "EST" ] }, "source": { "type": "string" }, "page": { "type": "integer" }, "entries": { "type": "array", "items": { "$ref": "entry.json" } }, "srd": {"$ref": "util.json#/definitions/srd"} }, "additionalProperties": false, "required": [ "name", "source", "entries" ] } }, "properties": { "trap": { "type": "array", "items": { "$ref": "#/definitions/trap" } }, "hazard": { "type": "array", "items": { "$ref": "#/definitions/hazard" } } }, "additionalProperties": false }