{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Quest Definitions", "type": "object", "additionalProperties": false, "required": ["schemaVersion", "quests"], "properties": { "schemaVersion": { "type": "integer", "minimum": 1 }, "quests": { "type": "array", "items": { "type": "object", "additionalProperties": false, "required": ["questId", "name", "steps", "requirements", "reward"], "properties": { "questId": { "type": "integer", "minimum": 1 }, "name": { "type": "string", "minLength": 1 }, "currentStepId": { "type": "string" }, "completionState": { "type": "string" }, "steps": { "type": "array", "items": { "type": "object", "additionalProperties": false, "required": ["id", "name", "conditionType", "conditionValue"], "properties": { "stepID": { "type": "integer", "minimum": 1 }, "id": { "type": "string", "minLength": 1 }, "name": { "type": "string", "minLength": 1 }, "conditionType": { "type": "string", "minLength": 1 }, "conditionValue": { "type": "string" } } } }, "requirements": { "type": "array", "items": { "type": "object", "additionalProperties": false, "required": ["conditionType", "conditionValue"], "properties": { "conditionType": { "type": "string", "minLength": 1 }, "conditionValue": { "type": "string" } } } }, "reward": { "type": "object", "additionalProperties": false, "required": ["xp", "gold", "enabledConditions"], "properties": { "xp": { "type": "integer", "minimum": 0 }, "gold": { "type": "integer", "minimum": 0 }, "enabledConditions": { "type": "array", "items": { "type": "string" } } } } } } } } }