{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://sdk.vorivox.com/schemas/game-package-manifest.schema.json",
  "title": "VORIVOX Game Package Manifest v1",
  "type": "object",
  "additionalProperties": true,
  "required": ["schema", "game_id", "version", "title", "entrypoint", "engine", "engine_version", "sdk", "players", "display"],
  "properties": {
    "schema": {"const": "vorivox.game-package.v1"},
    "game_id": {"type": "string", "pattern": "^[a-z0-9]+([.-][a-z0-9]+)+$"},
    "version": {"type": "string", "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+([+-][0-9A-Za-z.-]+)?$"},
    "title": {
      "type": "object",
      "required": ["ru", "en"],
      "properties": {"ru": {"type": "string", "minLength": 1}, "en": {"type": "string", "minLength": 1}}
    },
    "entrypoint": {"type": "string", "pattern": "^[^/].*\\.x86_64$"},
    "engine": {"const": "unity"},
    "engine_version": {"type": "string", "pattern": "^2022\\.3"},
    "sdk": {
      "type": "object",
      "required": ["name", "version"],
      "properties": {
        "name": {"const": "com.vorivox.unity-gamesdk"},
        "version": {"type": "string", "minLength": 1}
      }
    },
    "players": {"$ref": "vorivox.launch.v1.schema.json#/$defs/players"},
    "display": {
      "type": "object",
      "required": ["fullscreen", "preferred_width", "preferred_height"],
      "properties": {
        "fullscreen": {"type": "boolean"},
        "preferred_width": {"type": "integer", "minimum": 1280},
        "preferred_height": {"type": "integer", "minimum": 720}
      }
    },
    "permissions": {"type": "array", "uniqueItems": true, "items": {"type": "string", "minLength": 1}}
  }
}
