Skip to content

madoo.caption-translation-block/v1

Madoo translated caption block — Validated translated texts aligned one-to-one with the immutable cue IDs of a caption block.

Reference madoo.caption-translation-block/v1
Schema id urn:madoo:schema:caption-translation-block:v1
Version 1.0.0
Served at GET /api/v1/json-schemas/madoo.caption-translation-block/v1 · MCP get_json_schema
  • Produced by: ai/caption_translation → translation
  • Read by: aggregate/caption_track → translations
Field Type Required Rules Description
schema "madoo.caption-translation-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
target_language string yes min length 1; max length 35
translations array of objects yes min items 1; max items 100
translations[].id string yes min length 1; max length 128
translations[].text string yes min length 1; max length 20000
issues array of objects max items 416
issues[].code string yes min length 1; max length 128
issues[].severity "warning" yes
issues[].message string yes min length 1; max length 2000
issues[].fallback string yes min length 1; max length 20000
issues[].cue_id string or null max length 128
madoo.caption-translation-block/v1 (JSON Schema)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "urn:madoo:schema:caption-translation-block:v1",
"title": "Madoo translated caption block",
"description": "Validated translated text aligned to immutable cue IDs. Timing and speakers remain owned by the source caption track.",
"type": "object",
"additionalProperties": false,
"required": [
"schema",
"track_id",
"block_id",
"block_index",
"source_language",
"target_language",
"translations"
],
"properties": {
"schema": {
"const": "madoo.caption-translation-block/v1"
},
"track_id": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"block_id": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"block_index": {
"type": "integer",
"minimum": 0,
"maximum": 9999
},
"source_language": {
"type": [
"string",
"null"
],
"maxLength": 35
},
"target_language": {
"type": "string",
"minLength": 1,
"maxLength": 35,
"examples": [
"it"
]
},
"translations": {
"type": "array",
"minItems": 1,
"maxItems": 100,
"items": {
"$ref": "#/$defs/translation"
}
},
"issues": {
"type": "array",
"maxItems": 416,
"items": {
"$ref": "#/$defs/issue"
}
}
},
"$defs": {
"translation": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"text"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"examples": [
"cue-0001"
]
},
"text": {
"type": "string",
"minLength": 1,
"maxLength": 20000,
"examples": [
"Benvenuti al nostro aggiornamento sul prodotto."
]
}
}
},
"issue": {
"type": "object",
"additionalProperties": false,
"required": [
"code",
"severity",
"message",
"fallback"
],
"properties": {
"code": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"severity": {
"const": "warning"
},
"message": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"fallback": {
"type": "string",
"minLength": 1,
"maxLength": 20000
},
"cue_id": {
"type": [
"string",
"null"
],
"maxLength": 128
}
}
}
}
}