{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "World Definition",
  "type": "object",
  "additionalProperties": false,
  "required": ["schemaVersion", "id", "name", "chunkWidth", "chunkHeight", "tileSize", "defaultBackgroundTileId", "spawn"],
  "properties": {
    "schemaVersion": {
      "type": "integer",
      "minimum": 1
    },
    "id": {
      "type": "string",
      "minLength": 1
    },
    "name": {
      "type": "string",
      "minLength": 1
    },
    "chunkWidth": {
      "type": "integer",
      "minimum": 1
    },
    "chunkHeight": {
      "type": "integer",
      "minimum": 1
    },
    "tileSize": {
      "type": "number",
      "minimum": 8
    },
    "backgroundColor": {
      "type": "string",
      "pattern": "^#[0-9A-Fa-f]{6}$"
    },
    "defaultBackgroundTileId": {
      "type": "string"
    },
    "heightBlurStep": {
      "type": "number",
      "minimum": 0,
      "maximum": 1
    },
    "editorUi": {
      "type": "object"
    },
    "spawn": {
      "type": "object",
      "additionalProperties": false,
      "required": ["x", "y"],
      "properties": {
        "x": {
          "type": "integer"
        },
        "y": {
          "type": "integer"
        }
      }
    },
    "editor": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "defaultZoom": {
          "type": "number"
        },
        "gridVisible": {
          "type": "boolean"
        }
      }
    }
  }
}
