{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/SeasonalDutyPaths/seasonaldutydefinition-v1.json", "title": "Seasonal Duty Definition V1", "description": "A seasonal duty farming definition", "type": "object", "properties": { "$schema": { "type": "string" }, "Name": { "description": "Display name of the seasonal duty", "type": "string" }, "TerritoryId": { "description": "Territory ID where the NPC is located", "type": "integer", "minimum": 1 }, "Aetheryte": { "description": "Nearest aetheryte for teleporting", "$ref": "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/Questionable.Model/common-aetheryte.json" }, "AethernetShortcut": { "description": "Aethernet shortcut to use after teleporting", "type": "array", "items": { "type": "string" }, "minItems": 2, "maxItems": 2 }, "NpcDataId": { "description": "Data ID of the NPC to interact with", "type": "integer", "minimum": 1 }, "NpcPosition": { "description": "Position of the NPC", "$ref": "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/Questionable.Model/common-vector3.json" }, "DialogueChoices": { "description": "Dialogue choices when interacting with the NPC to enter the duty", "type": "array", "items": { "type": "object" } }, "DutyTerritoryId": { "description": "Territory ID of the duty instance", "type": "integer", "minimum": 1 }, "DataIds": { "description": "Data IDs of objects to interact with inside the duty", "type": "array", "items": { "type": "integer", "minimum": 1 }, "minItems": 1 }, "WaypointPositions": { "description": "Waypoint positions to navigate through inside the duty", "type": "array", "items": { "$ref": "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/Questionable.Model/common-vector3.json" } }, "Action": { "description": "Action to perform on each object", "type": "string" }, "StopDistance": { "description": "Distance at which to stop and perform the action", "type": "number", "minimum": 0 }, "RequiredQuestId": { "description": "Quest ID that must be completed before this duty can be farmed", "type": "integer", "minimum": 1 }, "EventExpiry": { "description": "Date and time (in UTC) when the seasonal event ends", "format": "date-time", "type": [ "string", "null" ] } }, "required": [ "$schema", "Name", "TerritoryId", "NpcDataId", "NpcPosition", "DutyTerritoryId", "DataIds", "Action" ], "additionalProperties": false }