{
    "title": "Wasabi Content List Schema",
    "description": "A JSON List of Wasabi Content, Marlin protected, that can be processed by Wasabi sample applications or tests.",

    "type": "array",
    "items": {
        "title": "Content Item",
        "type": "object",
        "properties": {
            "title": {
                "description": "The content title.",
                "type": "string",
                "pattern": "\\S",
                "minLength": 1
            },
            "container": {
                "description": "The content container format.",
                "type": "string",
                "enum": ["BBTS", "PDCF", "M4F", "DCF", "DASH", "HLS"]
            },
            "url": {
                "description": "The content URL. Can be indirect. Can be MS3.",
                "type": "string",
                "format": "uri",
                "pattern": "^(https?|hlss?|dashs?|ms3)://\\S+"
            },
            "indirect": {
                "description": "The content URL needs to be fetched to get to the actual content URL when indirect is true.",
                "type": "boolean"
            },
            "index": {
                "description": "The BBTS Index URL.",
                "type": "string",
                "format": "uri",
                "pattern": "^https?://\\S+"
            },
            "duration": {
                "description": "BBTS content duration if non-indexed, or desired PDCF fragment duration.",
                "type": "number"
            },
            "token": {
                "description": "The BB license acquisition token URL.",
                "type": "string",
                "format": "uri",
                "pattern": "^https?://\\S+"
            }
        },
        "required": ["title", "url", "container"]
    },
    "minItems": 1
}
