{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "LevelData", "description": "Schema for Zamny Browser game levels", "type": "object", "properties": { "width": { "description": "Width of the level in tiles", "type": "integer", "minimum": 1 }, "height": { "description": "Height of the level in tiles", "type": "integer", "minimum": 1 }, "tileSize": { "description": "Size of each tile in pixels (e.g. 32)", "type": "integer", "minimum": 1 }, "tiles": { "description": "Flat array of tile types (0=walkable, 1=wall, 2=water, 3=door)", "type": "array", "items": { "type": "integer", "minimum": 0, "maximum": 3 } }, "spawnPoints": { "description": "Locations where players can spawn", "type": "array", "items": { "type": "object", "properties": { "x": { "type": "number" }, "y": { "type": "number" } }, "required": ["x", "y"] } }, "entities": { "description": "Entities to spawn in the level (enemies, items, etc.)", "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string" }, "x": { "type": "number" }, "y": { "type": "number" }, "props": { "type": "object", "additionalProperties": true } }, "required": ["type", "x", "y"] } } }, "required": ["width", "height", "tileSize", "tiles"] }