{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "additionalProperties": false,
  "required": ["version", "open_web", "engines"],
  "properties": {
    "version": { "const": 1 },
    "open_web": {
      "type": "object", "additionalProperties": false,
      "required": ["id", "name", "navigation", "downloads", "partition"],
      "properties": {
        "id": { "const": "open-web" }, "name": { "type": "string", "minLength": 1 },
        "navigation": { "const": "open" }, "downloads": { "const": "deny" },
        "partition": { "const": "persist:akari-browser" }
      }
    },
    "engines": {
      "type": "array", "minItems": 1, "maxItems": 24,
      "items": {
        "type": "object", "additionalProperties": false,
        "required": ["id", "label", "template"],
        "properties": {
          "id": { "type": "string", "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$", "maxLength": 64 },
          "label": { "type": "string", "minLength": 1, "maxLength": 80 },
          "template": { "type": "string", "pattern": "^https://", "minLength": 13 }
        }
      }
    }
  }
}
