madoo.caption-block/v1
Madoo caption block — One bounded group of caption cues plus read-only neighbouring context for translation.
| Reference | madoo.caption-block/v1 |
| Schema id | urn:madoo:schema:caption-block:v1 |
| Version | 1.0.0 |
| Served at | GET /api/v1/json-schemas/madoo.caption-block/v1 · MCP get_json_schema |
Where it appears
Section titled “Where it appears”One of the two forms of madoo.caption-block-family/v1, the contract on the ports.
Fields
Section titled “Fields”| Field | Type | Required | Rules | Description |
|---|---|---|---|---|
schema |
"madoo.caption-block/v1" |
yes | ||
track_id |
string | yes | min length 1; max length 256 | |
block_id |
string | yes | min length 1; max length 256 | |
block_index |
integer | yes | ≥ 0; ≤ 9999 | |
source_language |
string or null | yes | max length 35 | |
cues |
array of objects | yes | min items 1; max items 100 | |
cues[].id |
string | yes | min length 1; max length 128 | |
cues[].text |
string | yes | min length 1; max length 20000 | |
cues[].speaker |
string or null | yes | max length 128 | |
cues[].kind |
string | yes | min length 1; max length 64 | |
context_before |
string or null | yes | max length 20000 | |
context_after |
string or null | yes | max length 20000 |
The complete schema
Section titled “The complete schema”madoo.caption-block/v1 (JSON Schema)
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "urn:madoo:schema:caption-block:v1", "title": "Madoo caption block", "description": "One bounded group of source cues. Neighbouring context is read-only and is not part of the translated cue set.", "type": "object", "additionalProperties": false, "required": [ "schema", "track_id", "block_id", "block_index", "source_language", "cues", "context_before", "context_after" ], "properties": { "schema": { "const": "madoo.caption-block/v1" }, "track_id": { "type": "string", "minLength": 1, "maxLength": 256, "examples": [ "source-track" ] }, "block_id": { "type": "string", "minLength": 1, "maxLength": 256, "examples": [ "source-track:block:0000" ] }, "block_index": { "type": "integer", "minimum": 0, "maximum": 9999 }, "source_language": { "type": [ "string", "null" ], "maxLength": 35, "examples": [ "en" ] }, "cues": { "type": "array", "minItems": 1, "maxItems": 100, "items": { "$ref": "#/$defs/cue" } }, "context_before": { "type": [ "string", "null" ], "maxLength": 20000 }, "context_after": { "type": [ "string", "null" ], "maxLength": 20000 } }, "$defs": { "cue": { "type": "object", "additionalProperties": false, "required": [ "id", "text", "speaker", "kind" ], "properties": { "id": { "type": "string", "minLength": 1, "maxLength": 128, "examples": [ "cue-0001" ] }, "text": { "type": "string", "minLength": 1, "maxLength": 20000, "examples": [ "Welcome to our product update." ] }, "speaker": { "type": [ "string", "null" ], "maxLength": 128, "examples": [ "speaker_0" ] }, "kind": { "type": "string", "minLength": 1, "maxLength": 64, "examples": [ "speech" ] } } } }}