{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://rhoe.dev/schemas/realization-pack-manifest-v0_9.schema.json",
  "title": "Realization Pack Manifest v0.9.0",
  "type": "object",
  "required": [
    "id",
    "packageKind",
    "version",
    "targetSurface",
    "realizationProfiles",
    "carrierArchetypes",
    "entrypoints",
    "dependencies"
  ],
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1
    },
    "label": {
      "type": "string"
    },
    "packageKind": {
      "const": "realizationPack"
    },
    "version": {
      "const": "0.9.0"
    },
    "targetSurface": {
      "type": "string",
      "enum": [
        "rhoeTypst",
        "rhoeLatex",
        "rhoeHtml"
      ]
    },
    "realizationProfiles": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "string",
        "enum": [
          "rhoeTypst/document",
          "rhoeTypst/presentation",
          "rhoeLatex/document",
          "rhoeLatex/presentation",
          "rhoeHtml/document",
          "rhoeHtml/viewer",
          "rhoeHtml/portal"
        ]
      }
    },
    "carrierArchetypes": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "string",
        "enum": [
          "stageFrame",
          "codexSpread",
          "scrollStream",
          "tableauPageCollage",
          "sheetField",
          "ledgerRegister",
          "box",
          "conversationThread"
        ]
      }
    },
    "entrypoints": {
      "type": "object",
      "minProperties": 1,
      "additionalProperties": {
        "type": "string",
        "minLength": 1
      }
    },
    "assets": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1
      }
    },
    "dependencies": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1
      }
    }
  },
  "additionalProperties": false
}
