{ "title": "Sequence", "required": ["participants", "messages"], "additionalProperties": false, "properties": { "participants": { "type": "array", "minItems": 2, "items": { "type": "object", "required": ["id", "label"], "additionalProperties": false, "properties": { "id": { "type": "string", "pattern": "^[A-Za-z_][A-Za-z0-9_.-]*$" }, "label": { "type": "string", "maxLength": 32 }, "sub": { "type": "string", "maxLength": 40 }, "kind": { "enum": ["backend", "focal", "store", "external", "input", "security", "muted"] }, "focal": { "type": "boolean" } } } }, "messages": { "type": "array", "minItems": 1, "items": { "anyOf": [ { "type": "array", "minItems": 2, "maxItems": 4, "items": [ { "type": "string" }, { "type": "string" }, { "type": "string" }, { "$ref": "#/$defs/msgKind" } ] }, { "type": "object", "required": ["from", "to"], "additionalProperties": false, "properties": { "from": { "type": "string" }, "to": { "type": "string" }, "label": { "type": "string", "maxLength": 44 }, "kind": { "$ref": "#/$defs/msgKind" }, "focal": { "type": "boolean" } } } ] } }, "fragments": { "type": "array", "items": { "type": "object", "required": ["kind", "from", "to"], "additionalProperties": false, "properties": { "kind": { "enum": ["alt", "opt", "loop", "par", "critical", "break"] }, "label": { "type": "string", "maxLength": 40 }, "from": { "type": "integer", "minimum": 0 }, "to": { "type": "integer", "minimum": 0 }, "else": { "type": "integer", "minimum": 0 }, "elseLabel": { "type": "string", "maxLength": 40 } } } }, "notes": { "type": "array", "items": { "type": "object", "required": ["at", "over", "text"], "additionalProperties": false, "properties": { "at": { "type": "integer", "minimum": 0 }, "over": { "type": "array", "minItems": 1, "maxItems": 2, "items": { "type": "string" } }, "text": { "type": "string", "maxLength": 80 } } } }, "numbered": { "type": "boolean" } }, "$defs": { "msgKind": { "enum": ["sync", "reply", "async", "self", "primary"] } } }