{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "id": { "type": "string", "minLength": 1 }, "scope": { "type": "object", "properties": { "proposal_type": { "type": "string", "enum": [ "BID", "INVITATION", "CONTROL_PLAN", "DISPATCH_PLAN" ] }, "timescales": { "minItems": 1, "type": "array", "items": { "type": "string", "enum": [ "ANNUAL", "MONTHLY", "DAY_AHEAD", "INTRADAY", "REALTIME" ] } }, "resource_set": { "type": "string", "minLength": 1 } }, "required": [ "proposal_type", "timescales", "resource_set" ], "additionalProperties": false }, "bounds": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "string", "pattern": "^-?\\d+(\\.\\d+)?$" } }, "validity": { "type": "object", "properties": { "from": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" }, "to": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" } }, "required": [ "from", "to" ], "additionalProperties": false }, "approval": { "type": "object", "properties": { "level": { "type": "string", "enum": [ "L1", "L2", "L3" ] }, "approved_by": { "minItems": 1, "type": "array", "items": { "type": "string", "minLength": 1 } } }, "required": [ "level", "approved_by" ], "additionalProperties": false }, "escalation": { "type": "object", "properties": { "max_consecutive_deviations": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "deviation_threshold_pct": { "type": "string", "pattern": "^-?\\d+(\\.\\d+)?$" } }, "required": [ "max_consecutive_deviations", "deviation_threshold_pct" ], "additionalProperties": false }, "status": { "type": "string", "enum": [ "ACTIVE", "SUSPENDED", "EXPIRED" ] } }, "required": [ "id", "scope", "bounds", "validity", "approval", "escalation", "status" ], "additionalProperties": false, "$id": "https://vpp-ai-platform/contracts/envelope.json", "title": "Envelope" }