Skip to content

madoo.video-edit-manifest/v1

Madoo video edit manifest — Measured mapping between source ranges and an assembled output-video timeline.

Reference madoo.video-edit-manifest/v1
Schema id urn:madoo:schema:video-edit-manifest:v1
Version 1.0.0
Served at GET /api/v1/json-schemas/madoo.video-edit-manifest/v1 · MCP get_json_schema
  • Produced by: video/edit_timeline → edit_manifest
  • Read by: utility/caption_timeline_project → edit_manifest
Field Type Required Rules Description
schema "madoo.video-edit-manifest/v1" yes
plan_id string yes min length 1; max length 128
source_sha256 string yes pattern “^[a-f0-9]{64}$”
planned_duration number yes > 0
actual_duration number yes > 0
clips array of objects yes min items 1; max items 20
clips[].id string yes min length 1; max length 128
clips[].candidate_id string yes min length 1; max length 200
clips[].source_start number yes ≥ 0
clips[].source_end number yes > 0
clips[].output_start number yes ≥ 0
clips[].output_end number yes > 0
clips[].duration number yes > 0
warnings array of objects yes max items 500
warnings[].code string yes min length 1; max length 128
warnings[].message string yes min length 1; max length 1000
warnings[].candidate_index integer or null ≥ 0
technique object yes no other fields
technique.name string yes min length 1; max length 128
technique.version string yes min length 1; max length 64
madoo.video-edit-manifest/v1 (JSON Schema)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "urn:madoo:schema:video-edit-manifest:v1",
"title": "Madoo Video Edit Manifest v1",
"description": "Measured mapping between source ranges and the assembled output-video timeline.",
"type": "object",
"required": [
"schema",
"plan_id",
"source_sha256",
"planned_duration",
"actual_duration",
"clips",
"warnings",
"technique"
],
"properties": {
"schema": {
"const": "madoo.video-edit-manifest/v1"
},
"plan_id": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"source_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"planned_duration": {
"type": "number",
"exclusiveMinimum": 0
},
"actual_duration": {
"type": "number",
"exclusiveMinimum": 0
},
"clips": {
"type": "array",
"minItems": 1,
"maxItems": 20,
"items": {
"$ref": "#/$defs/clip"
}
},
"warnings": {
"type": "array",
"maxItems": 500,
"items": {
"$ref": "#/$defs/warning"
}
},
"technique": {
"$ref": "#/$defs/technique"
}
},
"$defs": {
"clip": {
"type": "object",
"required": [
"id",
"candidate_id",
"source_start",
"source_end",
"output_start",
"output_end",
"duration"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"candidate_id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"source_start": {
"type": "number",
"minimum": 0
},
"source_end": {
"type": "number",
"exclusiveMinimum": 0
},
"output_start": {
"type": "number",
"minimum": 0
},
"output_end": {
"type": "number",
"exclusiveMinimum": 0
},
"duration": {
"type": "number",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
},
"warning": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"message": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"candidate_index": {
"type": [
"integer",
"null"
],
"minimum": 0
}
},
"additionalProperties": false
},
"technique": {
"type": "object",
"required": [
"name",
"version"
],
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"version": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}