{
    "$id": "https://xshl.org/schemas/1.1/definitions/manifest.json",
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "name": "manifest",
    "version": "1.1.0",
    "title": "Manifest",
    "description": "",
    "type": "object",
    "additionalProperties": false,
    "required": ["delete", "append", "upsert", "build", "send"],
    "properties": {
        "delete": {"$ref": "#/$defs/daubs"},
        "append": {"$ref": "#/$defs/daubs"},
        "upsert": {"$ref": "#/$defs/daubs"},
        "build": {"$ref": "#/$defs/daubs"},
        "send": {"$ref": "#/$defs/daubs"}
    },
    "$defs": {
        "pipeline": {
            "type": "array",
            "items": {
                "anyOf": [
                    {"$ref": "https://xshl.org/schemas/1.1/definitions/id.json"},
                    {"$ref": "https://xshl.org/schemas/1.1/definitions/target.json"}
                ]
            },
            "uniqueItems": true
        },
        "daubs": {
            "type": "object",
            "additionalProperties": false,
            "required": ["permissions"],
            "properties": {
                "obligation": {"$ref": "#/$defs/pipeline"},
                "advice": {"$ref": "#/$defs/pipeline"},
                "sources": {"$ref": "#/$defs/pipeline"},
                "permissions": {
                    "type": "array",
                    "items": {"type": "string"},
                    "minItems": 1,
                    "uniqueItems": true
                }
            }
        }
    }
}
