{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://neon-sprawl.local/schemas/quest-step-def.json", "title": "QuestStepDef", "description": "Single step row on a QuestDef (content/quests/*_quests.json). Steps advance sequentially in prototype Slice 1.", "type": "object", "additionalProperties": false, "required": ["id", "displayName", "objectives"], "properties": { "id": { "type": "string", "pattern": "^[a-z][a-z0-9_]*$", "description": "Immutable step key for progress tracking and HTTP projection." }, "displayName": { "type": "string", "minLength": 1, "description": "Player-facing label; safe to change without migrating character data." }, "objectives": { "type": "array", "minItems": 1, "items": { "$ref": "https://neon-sprawl.local/schemas/quest-objective-def.json" }, "description": "Objectives that must complete before the step advances." } } }