{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "app_manifest.schema",
  "title": "App Manifest",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "id",
    "title",
    "category",
    "entry_screen",
    "enabled",
    "version",
    "icon_path",
    "required_capabilities",
    "optional_capabilities",
    "supports_offline",
    "supports_streaming",
    "asset_manifest"
  ],
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1
    },
    "title": {
      "type": "string",
      "minLength": 1
    },
    "category": {
      "type": "string",
      "minLength": 1
    },
    "entry_screen": {
      "type": "string"
    },
    "enabled": {
      "type": "boolean"
    },
    "version": {
      "type": "string",
      "minLength": 1
    },
    "icon_path": {
      "type": "string",
      "minLength": 1
    },
    "required_capabilities": {
      "type": "integer",
      "minimum": 0
    },
    "optional_capabilities": {
      "type": "integer",
      "minimum": 0
    },
    "supports_offline": {
      "type": "boolean"
    },
    "supports_streaming": {
      "type": "boolean"
    },
    "asset_manifest": {
      "type": "string",
      "minLength": 1
    }
  }
}
