{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Monster Definitions", "type": "object", "additionalProperties": false, "required": ["schemaVersion", "monsters"], "properties": { "schemaVersion": { "type": "integer", "minimum": 1 }, "monsters": { "type": "array", "items": { "type": "object", "additionalProperties": false, "required": [ "id", "name", "level", "faction", "stats", "aiProfileId", "abilities", "lootTableId", "tags", "sprite" ], "properties": { "id": { "type": "string", "minLength": 1 }, "name": { "type": "string", "minLength": 1 }, "level": { "type": "integer", "minimum": 1 }, "faction": { "type": "string" }, "stats": { "type": "object", "additionalProperties": false, "required": ["maxHp", "maxMp", "attack", "defense", "speed"], "properties": { "maxHp": { "type": "integer", "minimum": 0 }, "maxMp": { "type": "integer", "minimum": 0 }, "attack": { "type": "integer" }, "defense": { "type": "integer" }, "speed": { "type": "integer" } } }, "aiProfileId": { "type": "string" }, "abilities": { "type": "array", "items": { "type": "string" } }, "lootTableId": { "type": "string" }, "tags": { "type": "array", "items": { "type": "string" } }, "sprite": { "type": "string" } } } } } }