From ac4fda0f3c39af352d1dd1f3d6e4b1f400150557 Mon Sep 17 00:00:00 2001 From: Semwright integration Date: Sat, 10 Oct 2026 13:46:41 -0600 Subject: [PATCH 1/4] feat(mlt): add verified video-only lossless FFV1 render profile --- crates/driver-mlt-video/README.md | 36 +++ crates/driver-mlt-video/src/app.rs | 2 +- crates/driver-mlt-video/src/runtime.rs | 292 +++++++++++++++++++++++-- crates/driver-mlt-video/tests/live.rs | 103 ++++++++- 4 files changed, 413 insertions(+), 20 deletions(-) diff --git a/crates/driver-mlt-video/README.md b/crates/driver-mlt-video/README.md index 78dfc5346..8218c2145 100644 --- a/crates/driver-mlt-video/README.md +++ b/crates/driver-mlt-video/README.md @@ -89,3 +89,39 @@ bounded staging, native decoder checks and safe output publication. The runner receives project/media roots read-only and the output root writable through typed Host arguments. It never accepts arbitrary executables, environment or shell commands. Compatibility fixture `Runtime` paths do not select production tools. + + +## Explicit video-only lossless FFV1 for downstream native A/V mux + +The existing `lossless` render profile remains **FFV1 + PCM s16le audio**. +The separate, opt-in `lossless-video-only` profile produces Matroska FFV1 +**without any audio stream**, even if the semantic MLT timeline has an audio +track. This supports the separately authorized `driver.mlt-video.av.mux`, +which demands video-only material plus a distinct measured 48 kHz stereo WAV. + +This is not a generic encoder override. The profile is selectable only +through the existing typed `render.plan` → `render.start` → +`render.status` → `render.result` Broker/Driver Host path. The pinned +MLT `avformat` consumer receives `an=1` rather than a silent PCM track; +capabilities cannot supply an executable, shell command, arbitrary filter, +encoder flags or external output root. + +The confined native render validates that exactly one FFV1 video stream and +**no audio** is present, matches source geometry and bounded duration, and +then **independently decodes and counts every frame** using a pinned FFprobe +`-count_frames` operation inside the existing Host sandbox. A missing +Matroska header `nb_frames` is not treated as success. The exact counted +value must equal the project plan (1–36,000 frames). This check runs +*before* existing exclusive/no-overwrite owner-root publication, preserving +artifact SHA-256, cancellation limits and source revision authority. + +The original `lossless`, H.264/AAC and `audio-wav` profiles are unchanged. +A video-only intermediate is not an H.264/AAC master, voice quality verdict +or human acceptance. + +Linux Host/MLT E2E exercises both the original lossless and the new +video-only profile on the **same 50-frame semantic timeline** (which includes +an audio source). It also runs independent host FFprobe on the new output, +requiring exactly one FFV1 video stream and 50 decoded frames. Rust unit +tests reject forged profiles, unexpected PCM/audio, wrong frame counts, +codec substitutions, malformed decoder output and out-of-budget metadata. diff --git a/crates/driver-mlt-video/src/app.rs b/crates/driver-mlt-video/src/app.rs index bd7fb7044..a4d8467e1 100644 --- a/crates/driver-mlt-video/src/app.rs +++ b/crates/driver-mlt-video/src/app.rs @@ -1540,7 +1540,7 @@ impl App { width: Some(width), height: Some(height), video_codec: Some("libx264"), - audio_codec: "aac", + audio_codec: Some("aac"), container: "mp4", extension: "mp4", }; diff --git a/crates/driver-mlt-video/src/runtime.rs b/crates/driver-mlt-video/src/runtime.rs index 2b622f4e5..bc3d7f960 100644 --- a/crates/driver-mlt-video/src/runtime.rs +++ b/crates/driver-mlt-video/src/runtime.rs @@ -1254,15 +1254,118 @@ impl Runtime { frames: u64, cancel: &AtomicBool, ) -> Result { - let info = self.probe( - work, - work, - &format!("partial.{}", profile.extension), - cancel, - )?; + let filename = format!("partial.{}", profile.extension); + let mut info = self.probe(work, work, &filename, cancel)?; validate_render_media(&info, profile, expected, frames)?; + if profile.id == "lossless-video-only" { + // A Matroska FFprobe header is not proof of frame count: many + // Matroska streams omit nb_frames entirely. The new opt-in AV + // input profile must actually decode and count *every* frame + // inside the existing confined runtime before publishing bytes. + let observed = self.decoded_ffv1_video_frame_count(work, &filename, cancel)?; + if observed != frames { + return Err(Error::new( + "BackendFailed", + "Decoded video-only FFV1 frame count differs from the source cut", + )); + } + info.frames = Some(observed); + } Ok(info) } + + fn decoded_ffv1_video_frame_count( + &self, + work: &Path, + name: &str, + cancel: &AtomicBool, + ) -> Result { + crate::fs::validate_relative(name)?; + if name.contains('/') { + return Err(Error::invalid( + "Decoded frame count requires an owned basename", + )); + } + let args = [ + "-v", + "error", + "-count_frames", + "-select_streams", + "v:0", + "-show_entries", + "stream=codec_name,codec_type,width,height,nb_read_frames", + "-of", + "json", + ] + .into_iter() + .map(OsString::from) + .chain(std::iter::once( + self.input_path(work, name).into_os_string(), + )) + .collect(); + let observed = run( + &self.spec("ffprobe", args, work, work, self.timeout)?, + cancel, + )? + .checked()?; + parse_exact_ffv1_decoded_frame_count(&observed.stdout) + } +} + +/// Check exactly one independently decoded video stream, never trusting +/// the estimated Matroska duration or its often-missing nb_frames metadata. +/// This returns only a count; raw media paths and decoder text stay private. +fn parse_exact_ffv1_decoded_frame_count(bytes: &[u8]) -> Result { + if bytes.is_empty() || bytes.len() > 4096 { + return Err(Error::limit( + "Decoded video-only frame evidence is absent or unbounded", + )); + } + let doc: serde_json::Value = serde_json::from_slice(bytes) + .map_err(|_| Error::invalid("Decoded video-only frame evidence is malformed"))?; + let streams = doc + .get("streams") + .and_then(serde_json::Value::as_array) + .ok_or_else(|| Error::invalid("Decoded video-only frame evidence has no stream list"))?; + if streams.len() != 1 { + return Err(Error::new( + "BackendFailed", + "Decoded video-only evidence must have one stream", + )); + } + let stream = &streams[0]; + if stream.get("codec_type").and_then(serde_json::Value::as_str) != Some("video") + || stream.get("codec_name").and_then(serde_json::Value::as_str) != Some("ffv1") + || !stream + .get("width") + .and_then(serde_json::Value::as_u64) + .is_some_and(|n| (16..=8192).contains(&n)) + || !stream + .get("height") + .and_then(serde_json::Value::as_u64) + .is_some_and(|n| (16..=8192).contains(&n)) + { + return Err(Error::new( + "BackendFailed", + "Decoded video-only stream codec or geometry differs", + )); + } + let text = stream + .get("nb_read_frames") + .and_then(serde_json::Value::as_str) + .ok_or_else(|| Error::new("BackendFailed", "Decoder did not count video frames"))?; + if text.is_empty() || text.len() > 6 || !text.bytes().all(|b| b.is_ascii_digit()) { + return Err(Error::invalid("Decoded frame count is not bounded decimal")); + } + let frames: u64 = text + .parse() + .map_err(|_| Error::invalid("Decoded frame count cannot be parsed"))?; + if !(1..=36_000).contains(&frames) { + return Err(Error::limit( + "Decoded frame count is outside the render budget", + )); + } + Ok(frames) } pub fn validate_render_media( @@ -1307,10 +1410,27 @@ pub fn validate_render_media( ), )); } - if !info.audio { + match profile.audio_codec { + Some(_) if !info.audio => { + return Err(Error::new( + "BackendFailed", + "Curated audio-bearing render profile requires an audio stream", + )); + } + None if info.audio => { + return Err(Error::new( + "BackendFailed", + "Video-only lossless render unexpectedly contains audio", + )); + } + _ => {} + } + if profile.id == "lossless-video-only" + && (!info.video || info.codecs.len() != 1 || info.codecs[0] != "ffv1") + { return Err(Error::new( "BackendFailed", - "Curated render profile requires an audio stream", + "Video-only lossless render must contain only FFV1 video", )); } Ok(()) @@ -1337,7 +1457,13 @@ pub fn render_argv( } else { args.push("vn=1".into()); } - args.push(format!("acodec={}", profile.audio_codec).into()); + if let Some(codec) = profile.audio_codec { + args.push(format!("acodec={codec}").into()); + } else { + // MLT avformat consumer: omit audio frames altogether. This is not + // the same as an encoded silent PCM stream and is checked post-render. + args.push("an=1".into()); + } args } @@ -1485,7 +1611,8 @@ pub struct RenderProfile { pub width: Option, pub height: Option, pub video_codec: Option<&'static str>, - pub audio_codec: &'static str, + /// None explicitly disables the MLT avformat consumer's audio stream. + pub audio_codec: Option<&'static str>, pub container: &'static str, pub extension: &'static str, } @@ -1497,7 +1624,7 @@ impl RenderProfile { width: Some(1920), height: Some(1080), video_codec: Some("libx264"), - audio_codec: "aac", + audio_codec: Some("aac"), container: "mp4", extension: "mp4", }, @@ -1506,7 +1633,7 @@ impl RenderProfile { width: Some(1280), height: Some(720), video_codec: Some("libx264"), - audio_codec: "aac", + audio_codec: Some("aac"), container: "mp4", extension: "mp4", }, @@ -1515,7 +1642,19 @@ impl RenderProfile { width: None, height: None, video_codec: Some("ffv1"), - audio_codec: "pcm_s16le", + audio_codec: Some("pcm_s16le"), + container: "matroska", + extension: "mkv", + }, + Self { + // A separate, explicitly opt-in profile for semantic MLT + // cuts that will become the video input to native av.mux. + // The existing "lossless" PCM transport output is unchanged. + id: "lossless-video-only", + width: None, + height: None, + video_codec: Some("ffv1"), + audio_codec: None, container: "matroska", extension: "mkv", }, @@ -1524,7 +1663,7 @@ impl RenderProfile { width: None, height: None, video_codec: None, - audio_codec: "pcm_s16le", + audio_codec: Some("pcm_s16le"), container: "wav", extension: "wav", }, @@ -1545,7 +1684,7 @@ impl RenderProfile { codec.to_owned() } }), - audio_codec: Some(self.audio_codec.to_owned()), + audio_codec: self.audio_codec.map(str::to_owned), container: self.container.to_owned(), extension: self.extension.to_owned(), } @@ -1559,7 +1698,9 @@ impl RenderProfile { } pub fn available(&self, catalog: &ServiceCatalog) -> bool { catalog.has("consumers", "avformat") - && catalog.has("audio_codecs", self.audio_codec) + && self + .audio_codec + .is_none_or(|codec| catalog.has("audio_codecs", codec)) && self .video_codec .is_none_or(|v| catalog.has("video_codecs", v)) @@ -1583,7 +1724,10 @@ impl RenderProfile { "video_codec", self.video_codec.map_or(Value::Null, Into::into), ), - ("audio_codec", self.audio_codec.into()), + ( + "audio_codec", + self.audio_codec.map_or(Value::Null, Into::into), + ), ("container", self.container.into()), ("extension", self.extension.into()), ]) @@ -1744,6 +1888,118 @@ mod tool_owner_tests { use super::{RenderProfile, h264_encoding_args, render_processing_args, trusted_tool_owner}; use std::path::Path; + #[test] + fn video_only_profile_is_opt_in_and_preserves_legacy_audio_profiles() { + let only = RenderProfile::get("lossless-video-only").unwrap(); + assert_eq!(only.video_codec, Some("ffv1")); + assert_eq!(only.audio_codec, None); + assert_eq!(only.semantic().audio_codec, None); + let command = super::render_argv("project.mlt", "intermediate.mkv", &only) + .iter() + .map(|value| value.to_string_lossy().into_owned()) + .collect::>(); + assert!(command.iter().any(|value| value == "an=1")); + assert!(command.iter().any(|value| value == "vcodec=ffv1")); + assert!(!command.iter().any(|value| value.starts_with("acodec="))); + + let legacy = RenderProfile::get("lossless").unwrap(); + assert_eq!(legacy.audio_codec, Some("pcm_s16le")); + assert_eq!(legacy.semantic().audio_codec.as_deref(), Some("pcm_s16le")); + let original = super::render_argv("project.mlt", "original.mkv", &legacy) + .iter() + .map(|value| value.to_string_lossy().into_owned()) + .collect::>(); + assert!(original.iter().any(|value| value == "acodec=pcm_s16le")); + assert!(!original.iter().any(|value| value == "an=1")); + } + + #[test] + fn strict_video_only_receipts_refuse_pcm_and_forged_profiles() { + let profile = RenderProfile::get("lossless-video-only").unwrap(); + let original = RenderProfile::get("lossless").unwrap(); + let expected = crate::model::Profile { + width: 160, + height: 90, + fps: crate::time::FrameRate::new(25, 1).unwrap(), + progressive: true, + sample_aspect: (1, 1), + display_aspect: (16, 9), + colorspace: 709, + audio_channels: 2, + }; + let mut measured = super::MediaInfo { + width: Some(160), + height: Some(90), + frames: None, + duration_num: 2, + duration_den: 1, + video: true, + audio: false, + codecs: vec!["ffv1".into()], + ..Default::default() + }; + assert!(super::validate_render_media(&measured, &profile, &expected, 50).is_ok()); + assert!(super::validate_render_media(&measured, &original, &expected, 50).is_err()); + measured.audio = true; + measured.codecs.push("pcm_s16le".into()); + assert!(super::validate_render_media(&measured, &profile, &expected, 50).is_err()); + assert!(super::validate_render_media(&measured, &original, &expected, 50).is_ok()); + measured.audio = false; + measured.codecs = vec!["aac".into()]; + assert!(super::validate_render_media(&measured, &profile, &expected, 50).is_err()); + measured.codecs = vec!["ffv1".into()]; + measured.frames = Some(49); + assert!(super::validate_render_media(&measured, &profile, &expected, 50).is_err()); + measured.frames = None; + measured.duration_num = 1; + assert!(super::validate_render_media(&measured, &profile, &expected, 50).is_err()); + measured.duration_num = 2; + measured.width = Some(1920); + assert!(super::validate_render_media(&measured, &profile, &expected, 50).is_err()); + } + + #[test] + fn decoded_frame_counter_requires_exact_bounded_ffv1_observation() { + let fixture = serde_json::json!({ + "streams": [{"codec_type":"video","codec_name":"ffv1", + "width":160,"height":90,"nb_read_frames":"50"}] + }); + let correct = serde_json::to_vec(&fixture).unwrap(); + assert_eq!( + super::parse_exact_ffv1_decoded_frame_count(&correct).unwrap(), + 50 + ); + let mut mutated = fixture; + for (field, value) in [ + ("nb_read_frames", serde_json::json!("N/A")), + ("nb_read_frames", serde_json::json!("0")), + ("nb_read_frames", serde_json::json!("36001")), + ("nb_read_frames", serde_json::Value::Null), + ("codec_name", serde_json::json!("h264")), + ("width", serde_json::json!(0)), + ("height", serde_json::json!(9000)), + ] { + mutated["streams"][0][field] = value; + assert!( + super::parse_exact_ffv1_decoded_frame_count(&serde_json::to_vec(&mutated).unwrap()) + .is_err(), + "bad field {field} passed" + ); + mutated = serde_json::json!({ + "streams": [{"codec_type":"video","codec_name":"ffv1", + "width":160,"height":90,"nb_read_frames":"50"}] + }); + } + let duplicate = mutated["streams"][0].clone(); + mutated["streams"].as_array_mut().unwrap().push(duplicate); + assert!( + super::parse_exact_ffv1_decoded_frame_count(&serde_json::to_vec(&mutated).unwrap()) + .is_err() + ); + assert!(super::parse_exact_ffv1_decoded_frame_count(&vec![b'x'; 4097]).is_err()); + assert!(super::parse_exact_ffv1_decoded_frame_count(b"{}").is_err()); + } + #[test] fn h264_profile_uses_bounded_fast_high_quality_encoding() { let args = h264_encoding_args(); @@ -1758,7 +2014,7 @@ mod tool_owner_tests { let args = args.iter().map(|v| v.to_string_lossy()).collect::>(); assert_eq!(args, ["real_time=0", "threads=2"], "profile {id}"); } - for id in ["lossless", "audio-wav"] { + for id in ["lossless", "lossless-video-only", "audio-wav"] { let args = render_processing_args(&RenderProfile::get(id).unwrap()); let args = args.iter().map(|v| v.to_string_lossy()).collect::>(); assert_eq!(args, ["real_time=-1", "threads=2"], "profile {id}"); diff --git a/crates/driver-mlt-video/tests/live.rs b/crates/driver-mlt-video/tests/live.rs index 2de731535..8b39a5bfa 100644 --- a/crates/driver-mlt-video/tests/live.rs +++ b/crates/driver-mlt-video/tests/live.rs @@ -879,7 +879,7 @@ async fn real_mlt_video_driver_runs_inside_sandbox() { ) .await .unwrap(); - for id in ["lossless", "h264-1080p"] { + for id in ["lossless", "lossless-video-only", "h264-1080p"] { assert!( profiles["profiles"] .as_array() @@ -960,6 +960,107 @@ async fn real_mlt_video_driver_runs_inside_sandbox() { assert!(artifact.is_file()); assert!(std::fs::metadata(&artifact).unwrap().len() > 100); + // Exercise the new opt-in video-only *semantic* MLT render on exactly the + // same audio-bearing editorial project. It must strip audio in the pinned + // consumer rather than publish silence, and independently count every + // real decoded FFV1 frame before the Broker releases the artifact. + let video_only_sequence = sequence_ref(provider.as_ref(), &capabilities, &project_ref).await; + let video_only_plan = call( + provider.as_ref(), + &capabilities, + "driver.mlt-video.render.plan", + json!({ + "project":project_ref, "sequence":video_only_sequence, + "profile":"lossless-video-only", "output":"video-only-runtime.mkv" + }), + ) + .await + .unwrap(); + assert_eq!(video_only_plan["runnable"], true); + assert_eq!(video_only_plan["frames"], 50); + let video_only_started = call( + provider.as_ref(), + &capabilities, + "driver.mlt-video.render.start", + json!({ + "project":project_ref, "expected_revision":revision, + "sequence":video_only_sequence, "profile":"lossless-video-only", + "output":"video-only-runtime.mkv" + }), + ) + .await + .unwrap(); + let video_only_job = video_only_started["job"].as_str().unwrap(); + let video_only_terminal = loop { + let status = call( + provider.as_ref(), + &capabilities, + "driver.mlt-video.render.status", + json!({"job":video_only_job}), + ) + .await + .unwrap(); + match status["state"].as_str().unwrap() { + "succeeded" | "failed" | "cancelled" | "unknown" => break status, + _ => tokio::time::sleep(Duration::from_millis(50)).await, + } + }; + assert_eq!( + video_only_terminal["state"], "succeeded", + "{video_only_terminal:#}" + ); + let video_only_result = call( + provider.as_ref(), + &capabilities, + "driver.mlt-video.render.result", + json!({"job":video_only_job}), + ) + .await + .unwrap(); + assert_eq!(video_only_result["profile"], "lossless-video-only"); + assert_eq!(video_only_result["state"], "succeeded"); + assert_eq!(video_only_result["project_revision"], revision); + assert_eq!( + video_only_result["artifact"]["path"], + "video-only-runtime.mkv" + ); + assert_eq!(video_only_result["media"]["video"], true); + assert_eq!(video_only_result["media"]["audio"], false); + assert_eq!(video_only_result["media"]["frames"], 50); + assert_eq!(video_only_result["media"]["codecs"], json!(["ffv1"])); + let video_only_artifact = output.path().join("video-only-runtime.mkv"); + assert!(video_only_artifact.is_file()); + assert!(std::fs::metadata(&video_only_artifact).unwrap().len() > 100); + assert_eq!( + video_only_result["artifact"]["sha256"], + digest(&video_only_artifact) + ); + + // Keep an independently invoked *real* ffprobe check in this + // owner-controlled CI test; a declared vendor receipt is not enough. + let frame_probe = Command::new(&ffprobe) + .args([ + "-v", + "error", + "-count_frames", + "-show_streams", + "-of", + "json", + ]) + .arg(&video_only_artifact) + .output() + .unwrap(); + assert!( + frame_probe.status.success(), + "Independent FFprobe decode failed" + ); + let checked_streams: Value = serde_json::from_slice(&frame_probe.stdout).unwrap(); + let checked_streams = checked_streams["streams"].as_array().unwrap(); + assert_eq!(checked_streams.len(), 1, "Audio must be absent, not silent"); + assert_eq!(checked_streams[0]["codec_type"], "video"); + assert_eq!(checked_streams[0]["codec_name"], "ffv1"); + assert_eq!(checked_streams[0]["nb_read_frames"], "50"); + // Exercise the same curated H.264 consumer used by the launch film in a // separate project born at 1920x1080/30. Reprofiling the earlier 160x90/25 // lossless fixture after clips already exist changes the timebase underneath From e7397bdb03e06df34624e16615560666c0f15978 Mon Sep 17 00:00:00 2001 From: Semwright integration Date: Sat, 10 Oct 2026 13:52:13 -0600 Subject: [PATCH 2/4] fix(mlt): authorize five render profiles and explicit null audio in catalog --- crates/driver-mlt-video/fixtures/SHA256SUMS.json | 6 +++--- .../driver-mlt-video/fixtures/expected/capabilities.json | 7 +++++-- .../driver-mlt-video/fixtures/expected/catalog-wire.json | 2 +- crates/driver-mlt-video/fixtures/expected/digests.json | 4 ++-- crates/driver-mlt-video/src/catalog.json | 7 +++++-- 5 files changed, 16 insertions(+), 10 deletions(-) diff --git a/crates/driver-mlt-video/fixtures/SHA256SUMS.json b/crates/driver-mlt-video/fixtures/SHA256SUMS.json index b416a2844..334654151 100644 --- a/crates/driver-mlt-video/fixtures/SHA256SUMS.json +++ b/crates/driver-mlt-video/fixtures/SHA256SUMS.json @@ -1,8 +1,8 @@ { "PROVENANCE.json": "0ad5f992c9cbd885009df4841ccaa617cf885a5b09d72eab87d8008202ab00be", - "expected/capabilities.json": "d002ebd345b81ddcc5d68de848ea43a10c5e898676d20d52f77979597e410ce5", - "expected/catalog-wire.json": "1987d57e2f3ed96c272eae1a59456bf4af7415e755a255650d1c4b77e2494693", - "expected/digests.json": "b74039e30f6fb9e001c188c45e5307384aa5d913491166ea614cc42a2bab5366", + "expected/capabilities.json": "ec96b8856d808c3c9732ef94337a432c519e834a296bedd6ac92d3adc62b74b5", + "expected/catalog-wire.json": "a30653066c11d95f2d632bc6f147d3a8cefd56b88bce7703b614e23b35c0d24d", + "expected/digests.json": "6e324960da6077d2fda6850466b0655aaacc037df84e0bb72d57165b592c6c68", "kdenlive/file-uri.kdenlive": "9d9017e08a69bab303b336d922e5d241a12922ac7ab9d26402abb1bc8bc8fcbf", "kdenlive/future.kdenlive": "a8f0491fa66e5b6c20f21f75a1c1737ec674b99a09122e5e701ab113ef74741b", "kdenlive/multiple.kdenlive": "a2487cea93c77514803dff98a33b3e9967076bd96e1f52ce29aa3b78df56ceb4", diff --git a/crates/driver-mlt-video/fixtures/expected/capabilities.json b/crates/driver-mlt-video/fixtures/expected/capabilities.json index 70cb544c0..c5a53e449 100644 --- a/crates/driver-mlt-video/fixtures/expected/capabilities.json +++ b/crates/driver-mlt-video/fixtures/expected/capabilities.json @@ -7806,7 +7806,10 @@ "maxLength": 256 }, "audio_codec": { - "type": "string", + "type": [ + "string", + "null" + ], "maxLength": 256 }, "container": { @@ -7830,7 +7833,7 @@ ], "additionalProperties": false }, - "maxItems": 4 + "maxItems": 5 }, "mlt_version": { "type": [ diff --git a/crates/driver-mlt-video/fixtures/expected/catalog-wire.json b/crates/driver-mlt-video/fixtures/expected/catalog-wire.json index 31190e03b..303fd2d9b 100644 --- a/crates/driver-mlt-video/fixtures/expected/catalog-wire.json +++ b/crates/driver-mlt-video/fixtures/expected/catalog-wire.json @@ -1 +1 @@ -[{"descriptor":{"name":"driver.mlt-video.asset.import","version":"0.1.0","description":"Offline semantic asset.import. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"color":{"maxLength":32,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"frames":{"maximum":100000000,"minimum":1,"type":"integer"},"image_frames":{"maximum":100000000,"minimum":1,"type":"integer"},"kind":{"enum":["color","file"],"type":"string"},"name":{"maxLength":512,"type":"string"},"path":{"maxLength":4096,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"root":{"enum":["project","media","output"],"type":"string"}},"required":["project","expected_revision","kind","name"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.asset.inspect","version":"0.1.0","description":"Offline semantic asset.inspect. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"asset":{"maxLength":80,"type":"string"},"project":{"maxLength":80,"type":"string"}},"required":["project","asset"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":["string","null"]},"items":{"items":{"additionalProperties":false,"properties":{"frames":{"maximum":100000000,"minimum":0,"type":["integer","null"]},"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":64,"type":"string"},"name":{"maxLength":4096,"type":"string"},"opaque":{"type":"boolean"},"original":{"maxLength":4096,"type":["string","null"]},"proxy":{"maxLength":4096,"type":["string","null"]},"reference":{"maxLength":80,"type":"string"},"resource":{"maxLength":4096,"type":"string"},"resource_status":{"maxLength":64,"type":"string"},"service":{"maxLength":256,"type":"string"}},"required":["reference","id","name","kind","resource","resource_status","frames","service","original","proxy","opaque"],"type":"object"},"maxItems":100,"type":"array"},"revision":{"maxLength":64,"type":"string"},"total":{"maximum":100000,"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["revision","items","total","cursor","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.asset.list","version":"0.1.0","description":"Offline semantic asset.list. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":"string"},"limit":{"maximum":100,"minimum":1,"type":"integer"},"project":{"maxLength":80,"type":"string"}},"required":["project"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":["string","null"]},"items":{"items":{"additionalProperties":false,"properties":{"frames":{"maximum":100000000,"minimum":0,"type":["integer","null"]},"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":64,"type":"string"},"name":{"maxLength":4096,"type":"string"},"opaque":{"type":"boolean"},"original":{"maxLength":4096,"type":["string","null"]},"proxy":{"maxLength":4096,"type":["string","null"]},"reference":{"maxLength":80,"type":"string"},"resource":{"maxLength":4096,"type":"string"},"resource_status":{"maxLength":64,"type":"string"},"service":{"maxLength":256,"type":"string"}},"required":["reference","id","name","kind","resource","resource_status","frames","service","original","proxy","opaque"],"type":"object"},"maxItems":100,"type":"array"},"revision":{"maxLength":64,"type":"string"},"total":{"maximum":100000,"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["revision","items","total","cursor","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.asset.missing","version":"0.1.0","description":"Offline semantic asset.missing. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":"string"},"limit":{"maximum":100,"minimum":1,"type":"integer"},"project":{"maxLength":80,"type":"string"}},"required":["project"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":["string","null"]},"items":{"items":{"additionalProperties":false,"properties":{"asset":{"maxLength":256,"type":"string"},"resource_accessed":{"type":"boolean"},"status":{"enum":["generator","missing","available","unresolved","denied"],"type":"string"}},"required":["asset","status","resource_accessed"],"type":"object"},"maxItems":100,"type":"array"},"revision":{"maxLength":64,"type":"string"},"total":{"maximum":100000,"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["revision","items","total","cursor","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.asset.relink","version":"0.1.0","description":"Offline semantic asset.relink. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"asset":{"maxLength":80,"type":"string"},"expected_resource":{"maxLength":4096,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"path":{"maxLength":4096,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"root":{"enum":["project","media","output"],"type":"string"}},"required":["project","expected_revision","asset","expected_resource","root","path"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"destructive","idempotency":"destructive","timeout_ms":30000,"dry_run":false,"interactive_consent":true,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.audio.fade_in","version":"0.1.0","description":"Offline semantic audio.fade_in. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"clip":{"maxLength":80,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"frames":{"maximum":100000000,"minimum":2,"type":"integer"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","clip","frames"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.audio.fade_out","version":"0.1.0","description":"Offline semantic audio.fade_out. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"clip":{"maxLength":80,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"frames":{"maximum":100000000,"minimum":2,"type":"integer"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","clip","frames"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.audio.volume.get","version":"0.1.0","description":"Offline semantic audio.volume.get. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"clip":{"maxLength":80,"type":"string"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","sequence","clip"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"animated":{"type":"boolean"},"effect":{"maxLength":80,"type":["string","null"]},"value_milli":{"maximum":24000,"minimum":-60000,"type":["integer","null"]}},"required":["value_milli","animated","effect"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.audio.volume.set","version":"0.1.0","description":"Offline semantic audio.volume.set. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"clip":{"maxLength":80,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"value_milli":{"maximum":24000,"minimum":-60000,"type":"integer"}},"required":["project","expected_revision","sequence","clip","value_milli"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.av.mux","version":"0.1.0","description":"Mux one digest-pinned video-only Motion mezzanine and one digest-pinned audio-only final mix into a bounded H.264/AAC MP4 through the pinned confined MLT runtime, then publish a digest-bound 48 kHz stereo PCM WAV decoded from that exact master for post-encode analysis; no effects, gain, ducking, arbitrary argv or filter graph.","input_schema":{"additionalProperties":false,"properties":{"audio_path":{"maxLength":4096,"type":"string"},"audio_root":{"enum":["project","media","output"],"type":"string"},"audio_sha256":{"maxLength":64,"type":"string"},"channels":{"enum":[2],"type":"integer"},"fps_den":{"maximum":100000,"minimum":1,"type":"integer"},"fps_num":{"maximum":240000,"minimum":1,"type":"integer"},"frame_count":{"maximum":36000,"minimum":1,"type":"integer"},"height":{"maximum":4096,"minimum":2,"type":"integer"},"max_bytes":{"maximum":1073741824,"minimum":1,"type":"integer"},"output_path":{"maxLength":4096,"type":"string"},"profile":{"enum":["h264-aac-mp4"],"type":"string"},"sample_rate":{"enum":[48000],"type":"integer"},"video_path":{"maxLength":4096,"type":"string"},"video_root":{"enum":["project","media","output"],"type":"string"},"video_sha256":{"maxLength":64,"type":"string"},"width":{"maximum":4096,"minimum":2,"type":"integer"}},"required":["video_root","video_path","video_sha256","audio_root","audio_path","audio_sha256","width","height","fps_num","fps_den","frame_count","sample_rate","channels","profile","output_path","max_bytes"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"artifact":{"additionalProperties":false,"properties":{"bytes":{"maximum":1073741824,"minimum":1,"type":"integer"},"path":{"maxLength":4096,"type":"string"},"root":{"maxLength":64,"type":"string"},"sha256":{"maxLength":64,"type":"string"}},"required":["root","path","sha256","bytes"],"type":"object"},"audio_sample_frames":{"maximum":384000000,"minimum":1,"type":"integer"},"audio_sha256":{"maxLength":64,"type":"string"},"channels":{"enum":[2],"type":"integer"},"decoded_audio":{"additionalProperties":false,"properties":{"bytes":{"maximum":1073741824,"minimum":1,"type":"integer"},"path":{"maxLength":4096,"type":"string"},"root":{"maxLength":64,"type":"string"},"sha256":{"maxLength":64,"type":"string"}},"required":["root","path","sha256","bytes"],"type":"object"},"decoded_audio_media":{"additionalProperties":false,"properties":{"audio":{"type":"boolean"},"codecs":{"items":{"maxLength":128,"type":"string"},"maxItems":16,"type":"array"},"duration_den":{"maximum":1000000000,"minimum":0,"type":"integer"},"duration_num":{"maximum":1000000000000,"minimum":0,"type":"integer"},"frames":{"maximum":100000000,"minimum":0,"type":["integer","null"]},"height":{"maximum":16384,"minimum":1,"type":["integer","null"]},"video":{"type":"boolean"},"width":{"maximum":16384,"minimum":1,"type":["integer","null"]}},"required":["width","height","frames","duration_num","duration_den","audio","video","codecs"],"type":"object"},"decoded_audio_sample_frames":{"maximum":384000000,"minimum":1,"type":"integer"},"fps_den":{"maximum":100000,"minimum":1,"type":"integer"},"fps_num":{"maximum":240000,"minimum":1,"type":"integer"},"frame_count":{"maximum":36000,"minimum":1,"type":"integer"},"media":{"additionalProperties":false,"properties":{"audio":{"type":"boolean"},"codecs":{"items":{"maxLength":128,"type":"string"},"maxItems":16,"type":"array"},"duration_den":{"maximum":1000000000,"minimum":0,"type":"integer"},"duration_num":{"maximum":1000000000000,"minimum":0,"type":"integer"},"frames":{"maximum":100000000,"minimum":0,"type":["integer","null"]},"height":{"maximum":16384,"minimum":1,"type":["integer","null"]},"video":{"type":"boolean"},"width":{"maximum":16384,"minimum":1,"type":["integer","null"]}},"required":["width","height","frames","duration_num","duration_den","audio","video","codecs"],"type":"object"},"profile":{"enum":["h264-aac-mp4"],"type":"string"},"sample_rate":{"enum":[48000],"type":"integer"},"video_sha256":{"maxLength":64,"type":"string"}},"required":["artifact","decoded_audio","decoded_audio_media","decoded_audio_sample_frames","profile","frame_count","fps_num","fps_den","sample_rate","channels","audio_sample_frames","media","video_sha256","audio_sha256"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":300000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","audio","av","offline","mlt","artifact-in:video/mezzanine","artifact-in:audio/final-mix","artifact-out:video/master"],"object_types":["video-artifact"]},{"descriptor":{"name":"driver.mlt-video.clip.duplicate","version":"0.1.0","description":"Offline semantic clip.duplicate. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"clip":{"maxLength":80,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"start":{"maximum":100000000,"minimum":0,"type":"integer"},"track":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","clip","track","start"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.clip.insert","version":"0.1.0","description":"Offline semantic clip.insert. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"asset":{"maxLength":80,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"name":{"maxLength":512,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"ripple":{"type":"boolean"},"sequence":{"maxLength":80,"type":"string"},"source_in":{"maximum":100000000,"minimum":0,"type":"integer"},"source_out":{"maximum":100000000,"minimum":0,"type":"integer"},"start":{"maximum":100000000,"minimum":0,"type":"integer"},"track":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","track","asset","start","source_in","source_out","name"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.clip.inspect","version":"0.1.0","description":"Offline semantic clip.inspect. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"clip":{"maxLength":80,"type":"string"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","sequence","clip"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":["string","null"]},"items":{"items":{"additionalProperties":false,"properties":{"asset":{"maxLength":256,"type":"string"},"duration":{"maximum":100000000,"minimum":0,"type":"integer"},"effect_count":{"maximum":4000,"minimum":0,"type":"integer"},"id":{"maxLength":256,"type":"string"},"name":{"maxLength":4096,"type":"string"},"reference":{"maxLength":80,"type":"string"},"source_in":{"maximum":100000000,"minimum":0,"type":"integer"},"source_out":{"maximum":100000000,"minimum":0,"type":"integer"},"speed_den":{"maximum":1000,"minimum":1,"type":"integer"},"speed_num":{"maximum":1000,"minimum":1,"type":"integer"},"start":{"maximum":100000000,"minimum":0,"type":"integer"}},"required":["reference","id","name","asset","start","duration","source_in","source_out","effect_count","speed_num","speed_den"],"type":"object"},"maxItems":100,"type":"array"},"revision":{"maxLength":64,"type":"string"},"total":{"maximum":100000,"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["revision","items","total","cursor","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.clip.list","version":"0.1.0","description":"Offline semantic clip.list. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":"string"},"limit":{"maximum":100,"minimum":1,"type":"integer"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"track":{"maxLength":80,"type":"string"}},"required":["project","sequence"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":["string","null"]},"items":{"items":{"additionalProperties":false,"properties":{"asset":{"maxLength":256,"type":"string"},"duration":{"maximum":100000000,"minimum":0,"type":"integer"},"effect_count":{"maximum":4000,"minimum":0,"type":"integer"},"id":{"maxLength":256,"type":"string"},"name":{"maxLength":4096,"type":"string"},"reference":{"maxLength":80,"type":"string"},"source_in":{"maximum":100000000,"minimum":0,"type":"integer"},"source_out":{"maximum":100000000,"minimum":0,"type":"integer"},"speed_den":{"maximum":1000,"minimum":1,"type":"integer"},"speed_num":{"maximum":1000,"minimum":1,"type":"integer"},"start":{"maximum":100000000,"minimum":0,"type":"integer"}},"required":["reference","id","name","asset","start","duration","source_in","source_out","effect_count","speed_num","speed_den"],"type":"object"},"maxItems":100,"type":"array"},"revision":{"maxLength":64,"type":"string"},"total":{"maximum":100000,"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["revision","items","total","cursor","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.clip.move","version":"0.1.0","description":"Offline semantic clip.move. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"clip":{"maxLength":80,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"start":{"maximum":100000000,"minimum":0,"type":"integer"},"track":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","clip","track","start"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.clip.remove","version":"0.1.0","description":"Offline semantic clip.remove. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"clip":{"maxLength":80,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"ripple":{"type":"boolean"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","clip"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"destructive","idempotency":"destructive","timeout_ms":30000,"dry_run":false,"interactive_consent":true,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.clip.split","version":"0.1.0","description":"Offline semantic clip.split. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"at":{"maximum":100000000,"minimum":0,"type":"integer"},"clip":{"maxLength":80,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","clip","at"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.clip.trim","version":"0.1.0","description":"Offline semantic clip.trim. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"clip":{"maxLength":80,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"source_in":{"maximum":100000000,"minimum":0,"type":"integer"},"source_out":{"maximum":100000000,"minimum":0,"type":"integer"}},"required":["project","expected_revision","sequence","clip","source_in","source_out"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.doctor","version":"0.1.0","description":"Offline semantic doctor. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{},"required":[],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"adapters":{"items":{"maxLength":256,"type":"string"},"maxItems":8,"type":"array"},"capabilities":{"maximum":2048,"minimum":1,"type":"integer"},"driver_protocol":{"maximum":7,"minimum":7,"type":"integer"},"driver_version":{"maxLength":256,"type":"string"},"filesystem_mounts":{"items":{"maxLength":256,"type":"string"},"maxItems":4,"type":"array"},"mlt_version":{"maxLength":2048,"type":["string","null"]},"native_gui_verified":{"const":false,"type":"boolean"},"network":{"const":false,"type":"boolean"},"reason":{"maxLength":2048,"type":"string"},"render_available":{"type":"boolean"}},"required":["driver_version","driver_protocol","adapters","render_available","mlt_version","capabilities","filesystem_mounts","reason","network","native_gui_verified"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.effect.add","version":"0.1.0","description":"Offline semantic effect.add. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"clip":{"maxLength":80,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"service":{"enum":["volume","brightness"],"type":"string"},"value_milli":{"maximum":24000,"minimum":-60000,"type":"integer"}},"required":["project","expected_revision","sequence","clip","service","value_milli"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.effect.describe","version":"0.1.0","description":"Offline semantic effect.describe. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"service":{"enum":["volume","brightness"],"type":"string"}},"required":["service"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"available":{"type":"boolean"},"maximum_milli":{"maximum":24000,"minimum":-60000,"type":"integer"},"metadata_untrusted":{"type":"boolean"},"minimum_milli":{"maximum":24000,"minimum":-60000,"type":"integer"},"property":{"maxLength":256,"type":"string"},"service":{"maxLength":256,"type":"string"}},"required":["service","property","minimum_milli","maximum_milli","available","metadata_untrusted"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.effect.disable","version":"0.1.0","description":"Offline semantic effect.disable. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"clip":{"maxLength":80,"type":"string"},"effect":{"maxLength":80,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","clip","effect"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.effect.enable","version":"0.1.0","description":"Offline semantic effect.enable. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"clip":{"maxLength":80,"type":"string"},"effect":{"maxLength":80,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","clip","effect"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.effect.inspect","version":"0.1.0","description":"Offline semantic effect.inspect. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"clip":{"maxLength":80,"type":"string"},"effect":{"maxLength":80,"type":"string"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","sequence","clip","effect"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":["string","null"]},"items":{"items":{"additionalProperties":false,"properties":{"enabled":{"type":"boolean"},"id":{"maxLength":256,"type":"string"},"keyframe_count":{"maximum":1024,"minimum":0,"type":"integer"},"opaque":{"type":"boolean"},"property":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"},"service":{"maxLength":256,"type":"string"},"value_milli":{"maximum":24000,"minimum":-60000,"type":["integer","null"]}},"required":["reference","id","service","property","value_milli","enabled","keyframe_count","opaque"],"type":"object"},"maxItems":100,"type":"array"},"revision":{"maxLength":64,"type":"string"},"total":{"maximum":100000,"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["revision","items","total","cursor","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.effect.list","version":"0.1.0","description":"Offline semantic effect.list. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"clip":{"maxLength":80,"type":"string"},"cursor":{"maxLength":128,"type":"string"},"limit":{"maximum":100,"minimum":1,"type":"integer"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","sequence","clip"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":["string","null"]},"items":{"items":{"additionalProperties":false,"properties":{"enabled":{"type":"boolean"},"id":{"maxLength":256,"type":"string"},"keyframe_count":{"maximum":1024,"minimum":0,"type":"integer"},"opaque":{"type":"boolean"},"property":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"},"service":{"maxLength":256,"type":"string"},"value_milli":{"maximum":24000,"minimum":-60000,"type":["integer","null"]}},"required":["reference","id","service","property","value_milli","enabled","keyframe_count","opaque"],"type":"object"},"maxItems":100,"type":"array"},"revision":{"maxLength":64,"type":"string"},"total":{"maximum":100000,"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["revision","items","total","cursor","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.effect.patch","version":"0.1.0","description":"Offline semantic effect.patch. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"clip":{"maxLength":80,"type":"string"},"effect":{"maxLength":80,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"value_milli":{"maximum":24000,"minimum":-60000,"type":"integer"}},"required":["project","expected_revision","sequence","clip","effect","value_milli"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.effect.remove","version":"0.1.0","description":"Offline semantic effect.remove. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"clip":{"maxLength":80,"type":"string"},"effect":{"maxLength":80,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","clip","effect"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"destructive","idempotency":"destructive","timeout_ms":30000,"dry_run":false,"interactive_consent":true,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.effect.search","version":"0.1.0","description":"Offline semantic effect.search. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"query":{"maxLength":128,"type":"string"}},"required":[],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"available":{"type":"boolean"},"maximum_milli":{"maximum":24000,"minimum":-60000,"type":"integer"},"metadata_untrusted":{"type":"boolean"},"minimum_milli":{"maximum":24000,"minimum":-60000,"type":"integer"},"property":{"maxLength":256,"type":"string"},"service":{"maxLength":256,"type":"string"}},"required":["service","property","minimum_milli","maximum_milli","available","metadata_untrusted"],"type":"object"},"maxItems":2,"type":"array"},"mlt_version":{"maxLength":2048,"type":["string","null"]}},"required":["items","mlt_version"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.frames.encode","version":"0.1.0","description":"Verify a Motion Canvas artifact manifest and its PNG hashes, then encode a bounded video-only FFV1 Matroska mezzanine with the pinned confined ffmpeg runtime.","input_schema":{"additionalProperties":false,"properties":{"expected_manifest_sha256":{"maxLength":64,"type":"string"},"manifest_path":{"maxLength":4096,"type":"string"},"max_bytes":{"maximum":1073741824,"minimum":1,"type":"integer"},"output_path":{"maxLength":4096,"type":"string"},"root":{"enum":["project","media","output"],"type":"string"}},"required":["root","manifest_path","expected_manifest_sha256","output_path","max_bytes"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"artifact":{"additionalProperties":false,"properties":{"bytes":{"maximum":1073741824,"minimum":1,"type":"integer"},"path":{"maxLength":4096,"type":"string"},"root":{"maxLength":64,"type":"string"},"sha256":{"maxLength":64,"type":"string"}},"required":["root","path","sha256","bytes"],"type":"object"},"codec":{"enum":["ffv1"],"type":"string"},"container":{"enum":["matroska"],"type":"string"},"fps_den":{"maximum":1001,"minimum":1,"type":"integer"},"fps_num":{"maximum":120000,"minimum":1,"type":"integer"},"frame_count":{"maximum":36000,"minimum":1,"type":"integer"},"height":{"maximum":4096,"minimum":1,"type":"integer"},"media":{"additionalProperties":false,"properties":{"audio":{"type":"boolean"},"codecs":{"items":{"maxLength":128,"type":"string"},"maxItems":16,"type":"array"},"duration_den":{"maximum":1000000000,"minimum":0,"type":"integer"},"duration_num":{"maximum":1000000000000,"minimum":0,"type":"integer"},"frames":{"maximum":100000000,"minimum":0,"type":["integer","null"]},"height":{"maximum":16384,"minimum":1,"type":["integer","null"]},"video":{"type":"boolean"},"width":{"maximum":16384,"minimum":1,"type":["integer","null"]}},"required":["width","height","frames","duration_num","duration_den","audio","video","codecs"],"type":"object"},"source_manifest_sha256":{"maxLength":64,"type":"string"},"width":{"maximum":4096,"minimum":1,"type":"integer"}},"required":["artifact","source_manifest_sha256","codec","container","frame_count","width","height","fps_num","fps_den","media"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":300000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt","artifact-in:motion/frame-sequence","artifact-out:video/mezzanine"],"object_types":["video-artifact"]},{"descriptor":{"name":"driver.mlt-video.keyframe.list","version":"0.1.0","description":"Offline semantic keyframe.list. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"clip":{"maxLength":80,"type":"string"},"cursor":{"maxLength":128,"type":"string"},"effect":{"maxLength":80,"type":"string"},"limit":{"maximum":100,"minimum":1,"type":"integer"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","sequence","clip","effect"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":["string","null"]},"items":{"items":{"additionalProperties":false,"properties":{"frame":{"maximum":100000000,"minimum":0,"type":"integer"},"interpolation":{"enum":["linear","hold"],"type":"string"},"value_milli":{"maximum":24000,"minimum":-60000,"type":"integer"}},"required":["frame","value_milli","interpolation"],"type":"object"},"maxItems":100,"type":"array"},"revision":{"maxLength":64,"type":"string"},"total":{"maximum":100000,"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["revision","items","total","cursor","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.keyframe.remove","version":"0.1.0","description":"Offline semantic keyframe.remove. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"clip":{"maxLength":80,"type":"string"},"effect":{"maxLength":80,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"frame":{"maximum":100000000,"minimum":0,"type":"integer"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","clip","effect","frame"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"destructive","idempotency":"destructive","timeout_ms":30000,"dry_run":false,"interactive_consent":true,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.keyframe.set","version":"0.1.0","description":"Offline semantic keyframe.set. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"clip":{"maxLength":80,"type":"string"},"effect":{"maxLength":80,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"frame":{"maximum":100000000,"minimum":0,"type":"integer"},"interpolation":{"enum":["linear","hold"],"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"value_milli":{"maximum":24000,"minimum":-60000,"type":"integer"}},"required":["project","expected_revision","sequence","clip","effect","frame","value_milli","interpolation"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.marker.add","version":"0.1.0","description":"Offline semantic marker.add. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"expected_revision":{"maxLength":64,"type":"string"},"frame":{"maximum":100000000,"minimum":0,"type":"integer"},"label":{"maxLength":4096,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","frame","label"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.marker.list","version":"0.1.0","description":"Offline semantic marker.list. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":"string"},"limit":{"maximum":100,"minimum":1,"type":"integer"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","sequence"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":["string","null"]},"items":{"items":{"additionalProperties":false,"properties":{"frame":{"maximum":100000000,"minimum":0,"type":"integer"},"id":{"maxLength":256,"type":"string"},"label":{"maxLength":4096,"type":"string"},"reference":{"maxLength":80,"type":"string"},"tags":{"items":{"maxLength":128,"type":"string"},"maxItems":16,"type":"array"}},"required":["reference","id","frame","label","tags"],"type":"object"},"maxItems":100,"type":"array"},"revision":{"maxLength":64,"type":"string"},"total":{"maximum":100000,"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["revision","items","total","cursor","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.marker.patch","version":"0.1.0","description":"Offline semantic marker.patch. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"expected_revision":{"maxLength":64,"type":"string"},"frame":{"maximum":100000000,"minimum":0,"type":"integer"},"label":{"maxLength":4096,"type":"string"},"marker":{"maxLength":80,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","marker","frame","label"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.marker.remove","version":"0.1.0","description":"Offline semantic marker.remove. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"expected_revision":{"maxLength":64,"type":"string"},"marker":{"maxLength":80,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","marker"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"destructive","idempotency":"destructive","timeout_ms":30000,"dry_run":false,"interactive_consent":true,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.project.close","version":"0.1.0","description":"Offline semantic project.close. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"expected_revision":{"maxLength":64,"type":"string"},"project":{"maxLength":80,"type":"string"}},"required":["project","expected_revision"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"closed":{"type":"boolean"}},"required":["closed"],"type":"object"},"requires":["driver:mlt-video"],"risk":"destructive","idempotency":"destructive","timeout_ms":10000,"dry_run":false,"interactive_consent":true,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.project.create","version":"0.1.0","description":"Offline semantic project.create. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"profile":{"additionalProperties":false,"properties":{"audio_channels":{"maximum":8,"minimum":1,"type":"integer"},"colorspace":{"maximum":100000,"minimum":0,"type":"integer"},"display_aspect_den":{"maximum":100000,"minimum":1,"type":"integer"},"display_aspect_num":{"maximum":100000,"minimum":1,"type":"integer"},"fps_den":{"maximum":100000,"minimum":1,"type":"integer"},"fps_num":{"maximum":240000,"minimum":1,"type":"integer"},"height":{"maximum":4096,"minimum":2,"type":"integer"},"progressive":{"type":"boolean"},"sample_aspect_den":{"maximum":100000,"minimum":1,"type":"integer"},"sample_aspect_num":{"maximum":100000,"minimum":1,"type":"integer"},"width":{"maximum":4096,"minimum":2,"type":"integer"}},"required":["width","height","fps_num","fps_den","progressive","sample_aspect_num","sample_aspect_den","display_aspect_num","display_aspect_den","colorspace","audio_channels"],"type":"object"}},"required":[],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"format":{"enum":["generic_mlt","kdenlive","shotcut","shotcut_export","shotcut_virtual"],"type":"string"},"project":{"maxLength":80,"type":"string"},"revision":{"maxLength":64,"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["project","revision","format","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":10000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.project.diff","version":"0.1.0","description":"Offline semantic project.diff. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"other":{"maxLength":80,"type":"string"},"project":{"maxLength":80,"type":"string"}},"required":["project","other"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"added":{"items":{"maxLength":256,"type":"string"},"maxItems":10000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"changed":{"items":{"maxLength":256,"type":"string"},"maxItems":10000,"type":"array"},"profile_changed":{"type":"boolean"},"removed":{"items":{"maxLength":256,"type":"string"},"maxItems":10000,"type":"array"}},"required":["added","removed","changed","profile_changed","before_frames","after_frames"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.project.format","version":"0.1.0","description":"Offline semantic project.format. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"project":{"maxLength":80,"type":"string"}},"required":["project"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"format":{"enum":["generic_mlt","kdenlive","shotcut","shotcut_export","shotcut_virtual"],"type":"string"},"mutations":{"items":{"additionalProperties":false,"properties":{"operation":{"maxLength":256,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"}},"required":["operation","support"],"type":"object"},"maxItems":100,"type":"array"},"version":{"maxLength":256,"type":["string","null"]},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["format","version","mutations","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.project.inspect","version":"0.1.0","description":"Offline semantic project.inspect. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"project":{"maxLength":80,"type":"string"}},"required":["project"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"asset_count":{"maximum":10000,"minimum":0,"type":"integer"},"clip_count":{"maximum":10000,"minimum":0,"type":"integer"},"deep_editable":{"type":"boolean"},"format":{"enum":["generic_mlt","kdenlive","shotcut","shotcut_export","shotcut_virtual"],"type":"string"},"profile":{"additionalProperties":false,"properties":{"audio_channels":{"maximum":8,"minimum":1,"type":"integer"},"colorspace":{"maximum":100000,"minimum":0,"type":"integer"},"display_aspect_den":{"maximum":100000,"minimum":1,"type":"integer"},"display_aspect_num":{"maximum":100000,"minimum":1,"type":"integer"},"fps_den":{"maximum":100000,"minimum":1,"type":"integer"},"fps_num":{"maximum":240000,"minimum":1,"type":"integer"},"height":{"maximum":4096,"minimum":2,"type":"integer"},"progressive":{"type":"boolean"},"sample_aspect_den":{"maximum":100000,"minimum":1,"type":"integer"},"sample_aspect_num":{"maximum":100000,"minimum":1,"type":"integer"},"width":{"maximum":4096,"minimum":2,"type":"integer"}},"required":["width","height","fps_num","fps_den","progressive","sample_aspect_num","sample_aspect_den","display_aspect_num","display_aspect_den","colorspace","audio_channels"],"type":"object"},"project":{"maxLength":80,"type":"string"},"revision":{"maxLength":64,"type":"string"},"sequences":{"items":{"additionalProperties":false,"properties":{"duration":{"maximum":100000000,"minimum":0,"type":"integer"},"id":{"maxLength":256,"type":"string"},"name":{"maxLength":4096,"type":"string"},"nested_sequences":{"items":{"maxLength":256,"type":"string"},"maxItems":32,"type":"array"},"opaque":{"type":"boolean"},"reference":{"maxLength":80,"type":"string"},"track_count":{"maximum":128,"minimum":0,"type":"integer"}},"required":["reference","id","name","duration","track_count","nested_sequences","opaque"],"type":"object"},"maxItems":32,"type":"array"},"track_count":{"maximum":128,"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["project","revision","format","profile","sequences","asset_count","track_count","clip_count","deep_editable","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.project.open","version":"0.1.0","description":"Offline semantic project.open. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"path":{"maxLength":4096,"type":"string"},"root":{"enum":["project","output"],"type":"string"}},"required":["root","path"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"format":{"enum":["generic_mlt","kdenlive","shotcut","shotcut_export","shotcut_virtual"],"type":"string"},"project":{"maxLength":80,"type":"string"},"revision":{"maxLength":64,"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["project","revision","format","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":30000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.project.profile.get","version":"0.1.0","description":"Offline semantic project.profile.get. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"project":{"maxLength":80,"type":"string"}},"required":["project"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"audio_channels":{"maximum":8,"minimum":1,"type":"integer"},"colorspace":{"maximum":100000,"minimum":0,"type":"integer"},"display_aspect_den":{"maximum":100000,"minimum":1,"type":"integer"},"display_aspect_num":{"maximum":100000,"minimum":1,"type":"integer"},"fps_den":{"maximum":100000,"minimum":1,"type":"integer"},"fps_num":{"maximum":240000,"minimum":1,"type":"integer"},"height":{"maximum":4096,"minimum":2,"type":"integer"},"progressive":{"type":"boolean"},"sample_aspect_den":{"maximum":100000,"minimum":1,"type":"integer"},"sample_aspect_num":{"maximum":100000,"minimum":1,"type":"integer"},"width":{"maximum":4096,"minimum":2,"type":"integer"}},"required":["width","height","fps_num","fps_den","progressive","sample_aspect_num","sample_aspect_den","display_aspect_num","display_aspect_den","colorspace","audio_channels"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.project.profile.set","version":"0.1.0","description":"Offline semantic project.profile.set. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"expected_revision":{"maxLength":64,"type":"string"},"preview":{"type":"boolean"},"profile":{"additionalProperties":false,"properties":{"audio_channels":{"maximum":8,"minimum":1,"type":"integer"},"colorspace":{"maximum":100000,"minimum":0,"type":"integer"},"display_aspect_den":{"maximum":100000,"minimum":1,"type":"integer"},"display_aspect_num":{"maximum":100000,"minimum":1,"type":"integer"},"fps_den":{"maximum":100000,"minimum":1,"type":"integer"},"fps_num":{"maximum":240000,"minimum":1,"type":"integer"},"height":{"maximum":4096,"minimum":2,"type":"integer"},"progressive":{"type":"boolean"},"sample_aspect_den":{"maximum":100000,"minimum":1,"type":"integer"},"sample_aspect_num":{"maximum":100000,"minimum":1,"type":"integer"},"width":{"maximum":4096,"minimum":2,"type":"integer"}},"required":["width","height","fps_num","fps_den","progressive","sample_aspect_num","sample_aspect_den","display_aspect_num","display_aspect_den","colorspace","audio_channels"],"type":"object"},"project":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","profile"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.project.save_as","version":"0.1.0","description":"Offline semantic project.save_as. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"expected_revision":{"maxLength":64,"type":"string"},"path":{"maxLength":4096,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","path"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"artifact":{"additionalProperties":false,"properties":{"bytes":{"maximum":1073741824,"minimum":0,"type":"integer"},"path":{"maxLength":4096,"type":"string"},"root":{"enum":["output"],"type":"string"},"sha256":{"maxLength":64,"type":"string"}},"required":["root","path","sha256","bytes"],"type":["object","null"]},"project_revision":{"maxLength":64,"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"},"written":{"type":"boolean"}},"required":["written","artifact","project_revision","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.project.validate","version":"0.1.0","description":"Offline semantic project.validate. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"project":{"maxLength":80,"type":"string"}},"required":["project"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"revision":{"maxLength":64,"type":"string"},"valid":{"type":"boolean"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["valid","revision","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.render.cancel","version":"0.1.0","description":"Offline semantic render.cancel. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"job":{"maxLength":80,"type":"string"}},"required":["job"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"artifact":{"additionalProperties":false,"properties":{"bytes":{"maximum":1073741824,"minimum":0,"type":"integer"},"path":{"maxLength":4096,"type":"string"},"root":{"enum":["output"],"type":"string"},"sha256":{"maxLength":64,"type":"string"}},"required":["root","path","sha256","bytes"],"type":["object","null"]},"cancellation_requested":{"type":"boolean"},"completed_at_ms":{"maximum":18446744073709551615,"minimum":0,"type":["integer","null"]},"created_at_ms":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"error":{"additionalProperties":false,"properties":{"code":{"enum":["Unsupported","Unavailable","PermissionDenied","ConsentRequired","PolicyDenied","NotFound","AmbiguousTarget","StaleReference","BackendFailed","Timeout","InvalidArgument","PluginProtocolError","SandboxDenied","Conflict","Cancelled","Internal","ProtocolMismatch","ResourceExhausted"],"type":"string"},"message":{"maxLength":2048,"type":"string"},"outcome_known":{"type":"boolean"}},"required":["code","message","outcome_known"],"type":["object","null"]},"job":{"maxLength":80,"type":"string"},"media":{"additionalProperties":false,"properties":{"audio":{"type":"boolean"},"codecs":{"items":{"maxLength":256,"type":"string"},"maxItems":16,"type":"array"},"duration_den":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"duration_num":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"frames":{"maximum":100000000,"minimum":0,"type":["integer","null"]},"height":{"maximum":100000000,"minimum":0,"type":["integer","null"]},"video":{"type":"boolean"},"width":{"maximum":100000000,"minimum":0,"type":["integer","null"]}},"required":["width","height","frames","duration_num","duration_den","audio","video","codecs"],"type":["object","null"]},"output":{"maxLength":4096,"type":"string"},"profile":{"maxLength":256,"type":"string"},"progress":{"type":"null"},"project_revision":{"maxLength":64,"type":"string"},"started_at_ms":{"maximum":18446744073709551615,"minimum":0,"type":["integer","null"]},"state":{"enum":["queued","starting","running","succeeded","failed","cancelled","unknown"],"type":"string"}},"required":["job","project_revision","profile","output","state","progress","created_at_ms","started_at_ms","completed_at_ms","artifact","media","error","cancellation_requested"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":10000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.render.plan","version":"0.1.0","description":"Offline semantic render.plan. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"output":{"maxLength":4096,"type":"string"},"profile":{"maxLength":256,"type":"string"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","sequence","profile","output"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"frames":{"maximum":100000000,"minimum":0,"type":"integer"},"media":{"items":{"additionalProperties":false,"properties":{"asset":{"maxLength":256,"type":"string"},"path":{"maxLength":4096,"type":"string"},"root":{"enum":["project","media","output"],"type":"string"}},"required":["asset","root","path"],"type":"object"},"maxItems":10000,"type":"array"},"missing_services":{"items":{"maxLength":256,"type":"string"},"maxItems":2048,"type":"array"},"output_path":{"maxLength":4096,"type":"string"},"output_root":{"enum":["output"],"type":"string"},"profile":{"maxLength":256,"type":"string"},"project_revision":{"maxLength":64,"type":"string"},"runnable":{"type":"boolean"},"sequence":{"maxLength":256,"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["project_revision","sequence","profile","output_root","output_path","frames","runnable","missing_services","media","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":30000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.render.profiles","version":"0.1.0","description":"Offline semantic render.profiles. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{},"required":[],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"mlt_version":{"maxLength":2048,"type":["string","null"]},"profiles":{"items":{"additionalProperties":false,"properties":{"audio_codec":{"maxLength":256,"type":"string"},"available":{"type":"boolean"},"container":{"maxLength":256,"type":"string"},"extension":{"maxLength":256,"type":"string"},"height":{"maximum":100000000,"minimum":0,"type":["integer","null"]},"id":{"maxLength":256,"type":"string"},"video_codec":{"maxLength":256,"type":["string","null"]},"width":{"maximum":100000000,"minimum":0,"type":["integer","null"]}},"required":["id","available","width","height","video_codec","audio_codec","container","extension"],"type":"object"},"maxItems":4,"type":"array"}},"required":["profiles","mlt_version"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.render.result","version":"0.1.0","description":"Offline semantic render.result. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"job":{"maxLength":80,"type":"string"}},"required":["job"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"artifact":{"additionalProperties":false,"properties":{"bytes":{"maximum":1073741824,"minimum":0,"type":"integer"},"path":{"maxLength":4096,"type":"string"},"root":{"enum":["output"],"type":"string"},"sha256":{"maxLength":64,"type":"string"}},"required":["root","path","sha256","bytes"],"type":["object","null"]},"cancellation_requested":{"type":"boolean"},"completed_at_ms":{"maximum":18446744073709551615,"minimum":0,"type":["integer","null"]},"created_at_ms":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"error":{"additionalProperties":false,"properties":{"code":{"enum":["Unsupported","Unavailable","PermissionDenied","ConsentRequired","PolicyDenied","NotFound","AmbiguousTarget","StaleReference","BackendFailed","Timeout","InvalidArgument","PluginProtocolError","SandboxDenied","Conflict","Cancelled","Internal","ProtocolMismatch","ResourceExhausted"],"type":"string"},"message":{"maxLength":2048,"type":"string"},"outcome_known":{"type":"boolean"}},"required":["code","message","outcome_known"],"type":["object","null"]},"job":{"maxLength":80,"type":"string"},"media":{"additionalProperties":false,"properties":{"audio":{"type":"boolean"},"codecs":{"items":{"maxLength":256,"type":"string"},"maxItems":16,"type":"array"},"duration_den":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"duration_num":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"frames":{"maximum":100000000,"minimum":0,"type":["integer","null"]},"height":{"maximum":100000000,"minimum":0,"type":["integer","null"]},"video":{"type":"boolean"},"width":{"maximum":100000000,"minimum":0,"type":["integer","null"]}},"required":["width","height","frames","duration_num","duration_den","audio","video","codecs"],"type":["object","null"]},"output":{"maxLength":4096,"type":"string"},"profile":{"maxLength":256,"type":"string"},"progress":{"type":"null"},"project_revision":{"maxLength":64,"type":"string"},"started_at_ms":{"maximum":18446744073709551615,"minimum":0,"type":["integer","null"]},"state":{"enum":["queued","starting","running","succeeded","failed","cancelled","unknown"],"type":"string"}},"required":["job","project_revision","profile","output","state","progress","created_at_ms","started_at_ms","completed_at_ms","artifact","media","error","cancellation_requested"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.render.start","version":"0.1.0","description":"Offline semantic render.start. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"expected_revision":{"maxLength":64,"type":"string"},"output":{"maxLength":4096,"type":"string"},"profile":{"maxLength":256,"type":"string"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","profile","output"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"artifact":{"additionalProperties":false,"properties":{"bytes":{"maximum":1073741824,"minimum":0,"type":"integer"},"path":{"maxLength":4096,"type":"string"},"root":{"enum":["output"],"type":"string"},"sha256":{"maxLength":64,"type":"string"}},"required":["root","path","sha256","bytes"],"type":["object","null"]},"cancellation_requested":{"type":"boolean"},"completed_at_ms":{"maximum":18446744073709551615,"minimum":0,"type":["integer","null"]},"created_at_ms":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"error":{"additionalProperties":false,"properties":{"code":{"enum":["Unsupported","Unavailable","PermissionDenied","ConsentRequired","PolicyDenied","NotFound","AmbiguousTarget","StaleReference","BackendFailed","Timeout","InvalidArgument","PluginProtocolError","SandboxDenied","Conflict","Cancelled","Internal","ProtocolMismatch","ResourceExhausted"],"type":"string"},"message":{"maxLength":2048,"type":"string"},"outcome_known":{"type":"boolean"}},"required":["code","message","outcome_known"],"type":["object","null"]},"job":{"maxLength":80,"type":"string"},"media":{"additionalProperties":false,"properties":{"audio":{"type":"boolean"},"codecs":{"items":{"maxLength":256,"type":"string"},"maxItems":16,"type":"array"},"duration_den":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"duration_num":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"frames":{"maximum":100000000,"minimum":0,"type":["integer","null"]},"height":{"maximum":100000000,"minimum":0,"type":["integer","null"]},"video":{"type":"boolean"},"width":{"maximum":100000000,"minimum":0,"type":["integer","null"]}},"required":["width","height","frames","duration_num","duration_den","audio","video","codecs"],"type":["object","null"]},"output":{"maxLength":4096,"type":"string"},"profile":{"maxLength":256,"type":"string"},"progress":{"type":"null"},"project_revision":{"maxLength":64,"type":"string"},"started_at_ms":{"maximum":18446744073709551615,"minimum":0,"type":["integer","null"]},"state":{"enum":["queued","starting","running","succeeded","failed","cancelled","unknown"],"type":"string"}},"required":["job","project_revision","profile","output","state","progress","created_at_ms","started_at_ms","completed_at_ms","artifact","media","error","cancellation_requested"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":120000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.render.status","version":"0.1.0","description":"Offline semantic render.status. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"job":{"maxLength":80,"type":"string"}},"required":["job"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"artifact":{"additionalProperties":false,"properties":{"bytes":{"maximum":1073741824,"minimum":0,"type":"integer"},"path":{"maxLength":4096,"type":"string"},"root":{"enum":["output"],"type":"string"},"sha256":{"maxLength":64,"type":"string"}},"required":["root","path","sha256","bytes"],"type":["object","null"]},"cancellation_requested":{"type":"boolean"},"completed_at_ms":{"maximum":18446744073709551615,"minimum":0,"type":["integer","null"]},"created_at_ms":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"error":{"additionalProperties":false,"properties":{"code":{"enum":["Unsupported","Unavailable","PermissionDenied","ConsentRequired","PolicyDenied","NotFound","AmbiguousTarget","StaleReference","BackendFailed","Timeout","InvalidArgument","PluginProtocolError","SandboxDenied","Conflict","Cancelled","Internal","ProtocolMismatch","ResourceExhausted"],"type":"string"},"message":{"maxLength":2048,"type":"string"},"outcome_known":{"type":"boolean"}},"required":["code","message","outcome_known"],"type":["object","null"]},"job":{"maxLength":80,"type":"string"},"media":{"additionalProperties":false,"properties":{"audio":{"type":"boolean"},"codecs":{"items":{"maxLength":256,"type":"string"},"maxItems":16,"type":"array"},"duration_den":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"duration_num":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"frames":{"maximum":100000000,"minimum":0,"type":["integer","null"]},"height":{"maximum":100000000,"minimum":0,"type":["integer","null"]},"video":{"type":"boolean"},"width":{"maximum":100000000,"minimum":0,"type":["integer","null"]}},"required":["width","height","frames","duration_num","duration_den","audio","video","codecs"],"type":["object","null"]},"output":{"maxLength":4096,"type":"string"},"profile":{"maxLength":256,"type":"string"},"progress":{"type":"null"},"project_revision":{"maxLength":64,"type":"string"},"started_at_ms":{"maximum":18446744073709551615,"minimum":0,"type":["integer","null"]},"state":{"enum":["queued","starting","running","succeeded","failed","cancelled","unknown"],"type":"string"}},"required":["job","project_revision","profile","output","state","progress","created_at_ms","started_at_ms","completed_at_ms","artifact","media","error","cancellation_requested"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.search","version":"0.1.0","description":"Offline semantic search. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":"string"},"end":{"maximum":100000000,"minimum":0,"type":"integer"},"kind":{"enum":["asset","clip","track","marker","effect"],"type":"string"},"limit":{"maximum":100,"minimum":1,"type":"integer"},"project":{"maxLength":80,"type":"string"},"query":{"maxLength":128,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"start":{"maximum":100000000,"minimum":0,"type":"integer"},"track":{"maxLength":80,"type":"string"}},"required":["project","query"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":["string","null"]},"items":{"items":{"additionalProperties":false,"properties":{"duration":{"maximum":100000000,"minimum":0,"type":["integer","null"]},"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"name":{"maxLength":4096,"type":"string"},"reference":{"maxLength":80,"type":"string"},"sequence_id":{"maxLength":256,"type":["string","null"]},"start":{"maximum":100000000,"minimum":0,"type":["integer","null"]},"track_id":{"maxLength":256,"type":["string","null"]}},"required":["kind","reference","id","name","sequence_id","track_id","start","duration"],"type":"object"},"maxItems":100,"type":"array"},"revision":{"maxLength":64,"type":"string"},"total":{"maximum":100000,"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["revision","items","total","cursor","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.sequence.create","version":"0.1.0","description":"Offline semantic sequence.create. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"expected_revision":{"maxLength":64,"type":"string"},"name":{"maxLength":512,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","name"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.sequence.duration","version":"0.1.0","description":"Offline semantic sequence.duration. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","sequence"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"fps_den":{"maximum":100000,"minimum":1,"type":"integer"},"fps_num":{"maximum":240000,"minimum":1,"type":"integer"},"frames":{"maximum":100000000,"minimum":0,"type":"integer"}},"required":["frames","fps_num","fps_den"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.sequence.inspect","version":"0.1.0","description":"Offline semantic sequence.inspect. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","sequence"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":["string","null"]},"items":{"items":{"additionalProperties":false,"properties":{"duration":{"maximum":100000000,"minimum":0,"type":"integer"},"id":{"maxLength":256,"type":"string"},"name":{"maxLength":4096,"type":"string"},"nested_sequences":{"items":{"maxLength":256,"type":"string"},"maxItems":32,"type":"array"},"opaque":{"type":"boolean"},"reference":{"maxLength":80,"type":"string"},"track_count":{"maximum":128,"minimum":0,"type":"integer"}},"required":["reference","id","name","duration","track_count","nested_sequences","opaque"],"type":"object"},"maxItems":100,"type":"array"},"revision":{"maxLength":64,"type":"string"},"total":{"maximum":100000,"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["revision","items","total","cursor","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.sequence.list","version":"0.1.0","description":"Offline semantic sequence.list. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":"string"},"limit":{"maximum":100,"minimum":1,"type":"integer"},"project":{"maxLength":80,"type":"string"}},"required":["project"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":["string","null"]},"items":{"items":{"additionalProperties":false,"properties":{"duration":{"maximum":100000000,"minimum":0,"type":"integer"},"id":{"maxLength":256,"type":"string"},"name":{"maxLength":4096,"type":"string"},"nested_sequences":{"items":{"maxLength":256,"type":"string"},"maxItems":32,"type":"array"},"opaque":{"type":"boolean"},"reference":{"maxLength":80,"type":"string"},"track_count":{"maximum":128,"minimum":0,"type":"integer"}},"required":["reference","id","name","duration","track_count","nested_sequences","opaque"],"type":"object"},"maxItems":100,"type":"array"},"revision":{"maxLength":64,"type":"string"},"total":{"maximum":100000,"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["revision","items","total","cursor","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.sync.probe","version":"0.1.0","description":"Decode bounded technical flash/impulse sync markers with the pinned confined ffprobe runtime; optionally scan the complete master up to 60 seconds. No caller-supplied filter graph or argv.","input_schema":{"additionalProperties":false,"properties":{"cues":{"items":{"additionalProperties":false,"properties":{"expected_us":{"maximum":600000000,"minimum":0,"type":"integer"},"id":{"maxLength":96,"type":"string"}},"required":["id","expected_us"],"type":"object"},"maxItems":16,"type":"array"},"expected_sha256":{"maxLength":64,"type":"string"},"full_scan":{"type":"boolean"},"path":{"maxLength":4096,"type":"string"},"root":{"enum":["project","media","output"],"type":"string"},"window_us":{"maximum":500000,"minimum":10000,"type":"integer"}},"required":["root","path","expected_sha256","window_us","cues"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"artifact_sha256":{"maxLength":64,"type":"string"},"coverage":{"enum":["cue_windows","full_scan"],"type":"string"},"decoder":{"maxLength":128,"type":"string"},"decoder_sha256":{"maxLength":64,"type":"string"},"exhaustive_audio":{"type":"boolean"},"exhaustive_video":{"type":"boolean"},"flashes":{"items":{"additionalProperties":false,"properties":{"confidence":{"maximum":10000,"minimum":0,"type":"integer"},"cue_id":{"maxLength":96,"type":"string"},"presentation_time_us":{"maximum":600000000,"minimum":0,"type":"integer"},"uncertainty_us":{"maximum":500000,"minimum":0,"type":"integer"}},"required":["cue_id","presentation_time_us","uncertainty_us","confidence"],"type":"object"},"maxItems":16,"type":"array"},"impulses":{"items":{"additionalProperties":false,"properties":{"confidence":{"maximum":10000,"minimum":0,"type":"integer"},"cue_id":{"maxLength":96,"type":"string"},"presentation_time_us":{"maximum":600000000,"minimum":0,"type":"integer"},"uncertainty_us":{"maximum":500000,"minimum":0,"type":"integer"}},"required":["cue_id","presentation_time_us","uncertainty_us","confidence"],"type":"object"},"maxItems":16,"type":"array"},"missing_audio":{"items":{"maxLength":96,"type":"string"},"maxItems":16,"type":"array"},"missing_video":{"items":{"maxLength":96,"type":"string"},"maxItems":16,"type":"array"},"window_us":{"maximum":500000,"minimum":10000,"type":"integer"}},"required":["artifact_sha256","decoder","decoder_sha256","coverage","exhaustive_video","exhaustive_audio","window_us","flashes","impulses","missing_video","missing_audio"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":180000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","audio","sync","offline","ffprobe"],"object_types":["video-artifact"]},{"descriptor":{"name":"driver.mlt-video.track.create","version":"0.1.0","description":"Offline semantic track.create. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"expected_revision":{"maxLength":64,"type":"string"},"kind":{"enum":["av","video","audio"],"type":"string"},"name":{"maxLength":512,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","name","kind"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.track.hide","version":"0.1.0","description":"Offline semantic track.hide. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"expected_revision":{"maxLength":64,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"track":{"maxLength":80,"type":"string"},"value":{"type":"boolean"}},"required":["project","expected_revision","sequence","track","value"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.track.inspect","version":"0.1.0","description":"Offline semantic track.inspect. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"track":{"maxLength":80,"type":"string"}},"required":["project","sequence","track"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":["string","null"]},"items":{"items":{"additionalProperties":false,"properties":{"clip_count":{"maximum":10000,"minimum":0,"type":"integer"},"duration":{"maximum":100000000,"minimum":0,"type":"integer"},"hidden":{"type":"boolean"},"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":64,"type":"string"},"lane_count":{"maximum":8,"minimum":0,"type":"integer"},"muted":{"type":"boolean"},"name":{"maxLength":4096,"type":"string"},"opaque":{"type":"boolean"},"reference":{"maxLength":80,"type":"string"}},"required":["reference","id","name","kind","muted","hidden","lane_count","clip_count","duration","opaque"],"type":"object"},"maxItems":100,"type":"array"},"revision":{"maxLength":64,"type":"string"},"total":{"maximum":100000,"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["revision","items","total","cursor","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.track.list","version":"0.1.0","description":"Offline semantic track.list. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":"string"},"limit":{"maximum":100,"minimum":1,"type":"integer"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","sequence"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":["string","null"]},"items":{"items":{"additionalProperties":false,"properties":{"clip_count":{"maximum":10000,"minimum":0,"type":"integer"},"duration":{"maximum":100000000,"minimum":0,"type":"integer"},"hidden":{"type":"boolean"},"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":64,"type":"string"},"lane_count":{"maximum":8,"minimum":0,"type":"integer"},"muted":{"type":"boolean"},"name":{"maxLength":4096,"type":"string"},"opaque":{"type":"boolean"},"reference":{"maxLength":80,"type":"string"}},"required":["reference","id","name","kind","muted","hidden","lane_count","clip_count","duration","opaque"],"type":"object"},"maxItems":100,"type":"array"},"revision":{"maxLength":64,"type":"string"},"total":{"maximum":100000,"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["revision","items","total","cursor","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.track.mute","version":"0.1.0","description":"Offline semantic track.mute. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"expected_revision":{"maxLength":64,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"track":{"maxLength":80,"type":"string"},"value":{"type":"boolean"}},"required":["project","expected_revision","sequence","track","value"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.track.remove","version":"0.1.0","description":"Offline semantic track.remove. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"expected_revision":{"maxLength":64,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"track":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","track"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"destructive","idempotency":"destructive","timeout_ms":30000,"dry_run":false,"interactive_consent":true,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.track.rename","version":"0.1.0","description":"Offline semantic track.rename. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"expected_revision":{"maxLength":64,"type":"string"},"name":{"maxLength":512,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"track":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","track","name"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.track.reorder","version":"0.1.0","description":"Offline semantic track.reorder. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"expected_revision":{"maxLength":64,"type":"string"},"index":{"maximum":127,"minimum":0,"type":"integer"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"track":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","track","index"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.transition.add","version":"0.1.0","description":"Offline semantic transition.add. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"a_track":{"maxLength":80,"type":"string"},"allow_metadata_risk":{"type":"boolean"},"b_track":{"maxLength":80,"type":"string"},"end":{"maximum":100000000,"minimum":0,"type":"integer"},"expected_revision":{"maxLength":64,"type":"string"},"kind":{"enum":["dissolve","audio_mix"],"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"start":{"maximum":100000000,"minimum":0,"type":"integer"}},"required":["project","expected_revision","sequence","kind","a_track","b_track","start","end"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.transition.inspect","version":"0.1.0","description":"Offline semantic transition.inspect. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"transition":{"maxLength":80,"type":"string"}},"required":["project","sequence","transition"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":["string","null"]},"items":{"items":{"additionalProperties":false,"properties":{"a_track":{"maxLength":256,"type":"string"},"b_track":{"maxLength":256,"type":"string"},"end":{"maximum":100000000,"minimum":0,"type":"integer"},"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"opaque":{"type":"boolean"},"reference":{"maxLength":80,"type":"string"},"reverse":{"type":"boolean"},"start":{"maximum":100000000,"minimum":0,"type":"integer"}},"required":["reference","id","kind","a_track","b_track","start","end","reverse","opaque"],"type":"object"},"maxItems":100,"type":"array"},"revision":{"maxLength":64,"type":"string"},"total":{"maximum":100000,"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["revision","items","total","cursor","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.transition.list","version":"0.1.0","description":"Offline semantic transition.list. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":"string"},"limit":{"maximum":100,"minimum":1,"type":"integer"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","sequence"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":["string","null"]},"items":{"items":{"additionalProperties":false,"properties":{"a_track":{"maxLength":256,"type":"string"},"b_track":{"maxLength":256,"type":"string"},"end":{"maximum":100000000,"minimum":0,"type":"integer"},"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"opaque":{"type":"boolean"},"reference":{"maxLength":80,"type":"string"},"reverse":{"type":"boolean"},"start":{"maximum":100000000,"minimum":0,"type":"integer"}},"required":["reference","id","kind","a_track","b_track","start","end","reverse","opaque"],"type":"object"},"maxItems":100,"type":"array"},"revision":{"maxLength":64,"type":"string"},"total":{"maximum":100000,"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["revision","items","total","cursor","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.transition.patch","version":"0.1.0","description":"Offline semantic transition.patch. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"end":{"maximum":100000000,"minimum":0,"type":"integer"},"expected_revision":{"maxLength":64,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"reverse":{"type":"boolean"},"sequence":{"maxLength":80,"type":"string"},"start":{"maximum":100000000,"minimum":0,"type":"integer"},"transition":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","transition","start","end","reverse"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.transition.remove","version":"0.1.0","description":"Offline semantic transition.remove. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"expected_revision":{"maxLength":64,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"transition":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","transition"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"destructive","idempotency":"destructive","timeout_ms":30000,"dry_run":false,"interactive_consent":true,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]}] \ No newline at end of file +[{"descriptor":{"name":"driver.mlt-video.asset.import","version":"0.1.0","description":"Offline semantic asset.import. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"color":{"maxLength":32,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"frames":{"maximum":100000000,"minimum":1,"type":"integer"},"image_frames":{"maximum":100000000,"minimum":1,"type":"integer"},"kind":{"enum":["color","file"],"type":"string"},"name":{"maxLength":512,"type":"string"},"path":{"maxLength":4096,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"root":{"enum":["project","media","output"],"type":"string"}},"required":["project","expected_revision","kind","name"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.asset.inspect","version":"0.1.0","description":"Offline semantic asset.inspect. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"asset":{"maxLength":80,"type":"string"},"project":{"maxLength":80,"type":"string"}},"required":["project","asset"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":["string","null"]},"items":{"items":{"additionalProperties":false,"properties":{"frames":{"maximum":100000000,"minimum":0,"type":["integer","null"]},"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":64,"type":"string"},"name":{"maxLength":4096,"type":"string"},"opaque":{"type":"boolean"},"original":{"maxLength":4096,"type":["string","null"]},"proxy":{"maxLength":4096,"type":["string","null"]},"reference":{"maxLength":80,"type":"string"},"resource":{"maxLength":4096,"type":"string"},"resource_status":{"maxLength":64,"type":"string"},"service":{"maxLength":256,"type":"string"}},"required":["reference","id","name","kind","resource","resource_status","frames","service","original","proxy","opaque"],"type":"object"},"maxItems":100,"type":"array"},"revision":{"maxLength":64,"type":"string"},"total":{"maximum":100000,"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["revision","items","total","cursor","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.asset.list","version":"0.1.0","description":"Offline semantic asset.list. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":"string"},"limit":{"maximum":100,"minimum":1,"type":"integer"},"project":{"maxLength":80,"type":"string"}},"required":["project"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":["string","null"]},"items":{"items":{"additionalProperties":false,"properties":{"frames":{"maximum":100000000,"minimum":0,"type":["integer","null"]},"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":64,"type":"string"},"name":{"maxLength":4096,"type":"string"},"opaque":{"type":"boolean"},"original":{"maxLength":4096,"type":["string","null"]},"proxy":{"maxLength":4096,"type":["string","null"]},"reference":{"maxLength":80,"type":"string"},"resource":{"maxLength":4096,"type":"string"},"resource_status":{"maxLength":64,"type":"string"},"service":{"maxLength":256,"type":"string"}},"required":["reference","id","name","kind","resource","resource_status","frames","service","original","proxy","opaque"],"type":"object"},"maxItems":100,"type":"array"},"revision":{"maxLength":64,"type":"string"},"total":{"maximum":100000,"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["revision","items","total","cursor","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.asset.missing","version":"0.1.0","description":"Offline semantic asset.missing. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":"string"},"limit":{"maximum":100,"minimum":1,"type":"integer"},"project":{"maxLength":80,"type":"string"}},"required":["project"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":["string","null"]},"items":{"items":{"additionalProperties":false,"properties":{"asset":{"maxLength":256,"type":"string"},"resource_accessed":{"type":"boolean"},"status":{"enum":["generator","missing","available","unresolved","denied"],"type":"string"}},"required":["asset","status","resource_accessed"],"type":"object"},"maxItems":100,"type":"array"},"revision":{"maxLength":64,"type":"string"},"total":{"maximum":100000,"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["revision","items","total","cursor","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.asset.relink","version":"0.1.0","description":"Offline semantic asset.relink. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"asset":{"maxLength":80,"type":"string"},"expected_resource":{"maxLength":4096,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"path":{"maxLength":4096,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"root":{"enum":["project","media","output"],"type":"string"}},"required":["project","expected_revision","asset","expected_resource","root","path"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"destructive","idempotency":"destructive","timeout_ms":30000,"dry_run":false,"interactive_consent":true,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.audio.fade_in","version":"0.1.0","description":"Offline semantic audio.fade_in. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"clip":{"maxLength":80,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"frames":{"maximum":100000000,"minimum":2,"type":"integer"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","clip","frames"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.audio.fade_out","version":"0.1.0","description":"Offline semantic audio.fade_out. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"clip":{"maxLength":80,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"frames":{"maximum":100000000,"minimum":2,"type":"integer"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","clip","frames"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.audio.volume.get","version":"0.1.0","description":"Offline semantic audio.volume.get. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"clip":{"maxLength":80,"type":"string"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","sequence","clip"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"animated":{"type":"boolean"},"effect":{"maxLength":80,"type":["string","null"]},"value_milli":{"maximum":24000,"minimum":-60000,"type":["integer","null"]}},"required":["value_milli","animated","effect"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.audio.volume.set","version":"0.1.0","description":"Offline semantic audio.volume.set. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"clip":{"maxLength":80,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"value_milli":{"maximum":24000,"minimum":-60000,"type":"integer"}},"required":["project","expected_revision","sequence","clip","value_milli"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.av.mux","version":"0.1.0","description":"Mux one digest-pinned video-only Motion mezzanine and one digest-pinned audio-only final mix into a bounded H.264/AAC MP4 through the pinned confined MLT runtime, then publish a digest-bound 48 kHz stereo PCM WAV decoded from that exact master for post-encode analysis; no effects, gain, ducking, arbitrary argv or filter graph.","input_schema":{"additionalProperties":false,"properties":{"audio_path":{"maxLength":4096,"type":"string"},"audio_root":{"enum":["project","media","output"],"type":"string"},"audio_sha256":{"maxLength":64,"type":"string"},"channels":{"enum":[2],"type":"integer"},"fps_den":{"maximum":100000,"minimum":1,"type":"integer"},"fps_num":{"maximum":240000,"minimum":1,"type":"integer"},"frame_count":{"maximum":36000,"minimum":1,"type":"integer"},"height":{"maximum":4096,"minimum":2,"type":"integer"},"max_bytes":{"maximum":1073741824,"minimum":1,"type":"integer"},"output_path":{"maxLength":4096,"type":"string"},"profile":{"enum":["h264-aac-mp4"],"type":"string"},"sample_rate":{"enum":[48000],"type":"integer"},"video_path":{"maxLength":4096,"type":"string"},"video_root":{"enum":["project","media","output"],"type":"string"},"video_sha256":{"maxLength":64,"type":"string"},"width":{"maximum":4096,"minimum":2,"type":"integer"}},"required":["video_root","video_path","video_sha256","audio_root","audio_path","audio_sha256","width","height","fps_num","fps_den","frame_count","sample_rate","channels","profile","output_path","max_bytes"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"artifact":{"additionalProperties":false,"properties":{"bytes":{"maximum":1073741824,"minimum":1,"type":"integer"},"path":{"maxLength":4096,"type":"string"},"root":{"maxLength":64,"type":"string"},"sha256":{"maxLength":64,"type":"string"}},"required":["root","path","sha256","bytes"],"type":"object"},"audio_sample_frames":{"maximum":384000000,"minimum":1,"type":"integer"},"audio_sha256":{"maxLength":64,"type":"string"},"channels":{"enum":[2],"type":"integer"},"decoded_audio":{"additionalProperties":false,"properties":{"bytes":{"maximum":1073741824,"minimum":1,"type":"integer"},"path":{"maxLength":4096,"type":"string"},"root":{"maxLength":64,"type":"string"},"sha256":{"maxLength":64,"type":"string"}},"required":["root","path","sha256","bytes"],"type":"object"},"decoded_audio_media":{"additionalProperties":false,"properties":{"audio":{"type":"boolean"},"codecs":{"items":{"maxLength":128,"type":"string"},"maxItems":16,"type":"array"},"duration_den":{"maximum":1000000000,"minimum":0,"type":"integer"},"duration_num":{"maximum":1000000000000,"minimum":0,"type":"integer"},"frames":{"maximum":100000000,"minimum":0,"type":["integer","null"]},"height":{"maximum":16384,"minimum":1,"type":["integer","null"]},"video":{"type":"boolean"},"width":{"maximum":16384,"minimum":1,"type":["integer","null"]}},"required":["width","height","frames","duration_num","duration_den","audio","video","codecs"],"type":"object"},"decoded_audio_sample_frames":{"maximum":384000000,"minimum":1,"type":"integer"},"fps_den":{"maximum":100000,"minimum":1,"type":"integer"},"fps_num":{"maximum":240000,"minimum":1,"type":"integer"},"frame_count":{"maximum":36000,"minimum":1,"type":"integer"},"media":{"additionalProperties":false,"properties":{"audio":{"type":"boolean"},"codecs":{"items":{"maxLength":128,"type":"string"},"maxItems":16,"type":"array"},"duration_den":{"maximum":1000000000,"minimum":0,"type":"integer"},"duration_num":{"maximum":1000000000000,"minimum":0,"type":"integer"},"frames":{"maximum":100000000,"minimum":0,"type":["integer","null"]},"height":{"maximum":16384,"minimum":1,"type":["integer","null"]},"video":{"type":"boolean"},"width":{"maximum":16384,"minimum":1,"type":["integer","null"]}},"required":["width","height","frames","duration_num","duration_den","audio","video","codecs"],"type":"object"},"profile":{"enum":["h264-aac-mp4"],"type":"string"},"sample_rate":{"enum":[48000],"type":"integer"},"video_sha256":{"maxLength":64,"type":"string"}},"required":["artifact","decoded_audio","decoded_audio_media","decoded_audio_sample_frames","profile","frame_count","fps_num","fps_den","sample_rate","channels","audio_sample_frames","media","video_sha256","audio_sha256"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":300000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","audio","av","offline","mlt","artifact-in:video/mezzanine","artifact-in:audio/final-mix","artifact-out:video/master"],"object_types":["video-artifact"]},{"descriptor":{"name":"driver.mlt-video.clip.duplicate","version":"0.1.0","description":"Offline semantic clip.duplicate. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"clip":{"maxLength":80,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"start":{"maximum":100000000,"minimum":0,"type":"integer"},"track":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","clip","track","start"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.clip.insert","version":"0.1.0","description":"Offline semantic clip.insert. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"asset":{"maxLength":80,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"name":{"maxLength":512,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"ripple":{"type":"boolean"},"sequence":{"maxLength":80,"type":"string"},"source_in":{"maximum":100000000,"minimum":0,"type":"integer"},"source_out":{"maximum":100000000,"minimum":0,"type":"integer"},"start":{"maximum":100000000,"minimum":0,"type":"integer"},"track":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","track","asset","start","source_in","source_out","name"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.clip.inspect","version":"0.1.0","description":"Offline semantic clip.inspect. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"clip":{"maxLength":80,"type":"string"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","sequence","clip"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":["string","null"]},"items":{"items":{"additionalProperties":false,"properties":{"asset":{"maxLength":256,"type":"string"},"duration":{"maximum":100000000,"minimum":0,"type":"integer"},"effect_count":{"maximum":4000,"minimum":0,"type":"integer"},"id":{"maxLength":256,"type":"string"},"name":{"maxLength":4096,"type":"string"},"reference":{"maxLength":80,"type":"string"},"source_in":{"maximum":100000000,"minimum":0,"type":"integer"},"source_out":{"maximum":100000000,"minimum":0,"type":"integer"},"speed_den":{"maximum":1000,"minimum":1,"type":"integer"},"speed_num":{"maximum":1000,"minimum":1,"type":"integer"},"start":{"maximum":100000000,"minimum":0,"type":"integer"}},"required":["reference","id","name","asset","start","duration","source_in","source_out","effect_count","speed_num","speed_den"],"type":"object"},"maxItems":100,"type":"array"},"revision":{"maxLength":64,"type":"string"},"total":{"maximum":100000,"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["revision","items","total","cursor","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.clip.list","version":"0.1.0","description":"Offline semantic clip.list. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":"string"},"limit":{"maximum":100,"minimum":1,"type":"integer"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"track":{"maxLength":80,"type":"string"}},"required":["project","sequence"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":["string","null"]},"items":{"items":{"additionalProperties":false,"properties":{"asset":{"maxLength":256,"type":"string"},"duration":{"maximum":100000000,"minimum":0,"type":"integer"},"effect_count":{"maximum":4000,"minimum":0,"type":"integer"},"id":{"maxLength":256,"type":"string"},"name":{"maxLength":4096,"type":"string"},"reference":{"maxLength":80,"type":"string"},"source_in":{"maximum":100000000,"minimum":0,"type":"integer"},"source_out":{"maximum":100000000,"minimum":0,"type":"integer"},"speed_den":{"maximum":1000,"minimum":1,"type":"integer"},"speed_num":{"maximum":1000,"minimum":1,"type":"integer"},"start":{"maximum":100000000,"minimum":0,"type":"integer"}},"required":["reference","id","name","asset","start","duration","source_in","source_out","effect_count","speed_num","speed_den"],"type":"object"},"maxItems":100,"type":"array"},"revision":{"maxLength":64,"type":"string"},"total":{"maximum":100000,"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["revision","items","total","cursor","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.clip.move","version":"0.1.0","description":"Offline semantic clip.move. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"clip":{"maxLength":80,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"start":{"maximum":100000000,"minimum":0,"type":"integer"},"track":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","clip","track","start"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.clip.remove","version":"0.1.0","description":"Offline semantic clip.remove. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"clip":{"maxLength":80,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"ripple":{"type":"boolean"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","clip"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"destructive","idempotency":"destructive","timeout_ms":30000,"dry_run":false,"interactive_consent":true,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.clip.split","version":"0.1.0","description":"Offline semantic clip.split. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"at":{"maximum":100000000,"minimum":0,"type":"integer"},"clip":{"maxLength":80,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","clip","at"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.clip.trim","version":"0.1.0","description":"Offline semantic clip.trim. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"clip":{"maxLength":80,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"source_in":{"maximum":100000000,"minimum":0,"type":"integer"},"source_out":{"maximum":100000000,"minimum":0,"type":"integer"}},"required":["project","expected_revision","sequence","clip","source_in","source_out"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.doctor","version":"0.1.0","description":"Offline semantic doctor. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{},"required":[],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"adapters":{"items":{"maxLength":256,"type":"string"},"maxItems":8,"type":"array"},"capabilities":{"maximum":2048,"minimum":1,"type":"integer"},"driver_protocol":{"maximum":7,"minimum":7,"type":"integer"},"driver_version":{"maxLength":256,"type":"string"},"filesystem_mounts":{"items":{"maxLength":256,"type":"string"},"maxItems":4,"type":"array"},"mlt_version":{"maxLength":2048,"type":["string","null"]},"native_gui_verified":{"const":false,"type":"boolean"},"network":{"const":false,"type":"boolean"},"reason":{"maxLength":2048,"type":"string"},"render_available":{"type":"boolean"}},"required":["driver_version","driver_protocol","adapters","render_available","mlt_version","capabilities","filesystem_mounts","reason","network","native_gui_verified"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.effect.add","version":"0.1.0","description":"Offline semantic effect.add. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"clip":{"maxLength":80,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"service":{"enum":["volume","brightness"],"type":"string"},"value_milli":{"maximum":24000,"minimum":-60000,"type":"integer"}},"required":["project","expected_revision","sequence","clip","service","value_milli"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.effect.describe","version":"0.1.0","description":"Offline semantic effect.describe. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"service":{"enum":["volume","brightness"],"type":"string"}},"required":["service"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"available":{"type":"boolean"},"maximum_milli":{"maximum":24000,"minimum":-60000,"type":"integer"},"metadata_untrusted":{"type":"boolean"},"minimum_milli":{"maximum":24000,"minimum":-60000,"type":"integer"},"property":{"maxLength":256,"type":"string"},"service":{"maxLength":256,"type":"string"}},"required":["service","property","minimum_milli","maximum_milli","available","metadata_untrusted"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.effect.disable","version":"0.1.0","description":"Offline semantic effect.disable. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"clip":{"maxLength":80,"type":"string"},"effect":{"maxLength":80,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","clip","effect"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.effect.enable","version":"0.1.0","description":"Offline semantic effect.enable. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"clip":{"maxLength":80,"type":"string"},"effect":{"maxLength":80,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","clip","effect"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.effect.inspect","version":"0.1.0","description":"Offline semantic effect.inspect. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"clip":{"maxLength":80,"type":"string"},"effect":{"maxLength":80,"type":"string"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","sequence","clip","effect"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":["string","null"]},"items":{"items":{"additionalProperties":false,"properties":{"enabled":{"type":"boolean"},"id":{"maxLength":256,"type":"string"},"keyframe_count":{"maximum":1024,"minimum":0,"type":"integer"},"opaque":{"type":"boolean"},"property":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"},"service":{"maxLength":256,"type":"string"},"value_milli":{"maximum":24000,"minimum":-60000,"type":["integer","null"]}},"required":["reference","id","service","property","value_milli","enabled","keyframe_count","opaque"],"type":"object"},"maxItems":100,"type":"array"},"revision":{"maxLength":64,"type":"string"},"total":{"maximum":100000,"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["revision","items","total","cursor","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.effect.list","version":"0.1.0","description":"Offline semantic effect.list. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"clip":{"maxLength":80,"type":"string"},"cursor":{"maxLength":128,"type":"string"},"limit":{"maximum":100,"minimum":1,"type":"integer"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","sequence","clip"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":["string","null"]},"items":{"items":{"additionalProperties":false,"properties":{"enabled":{"type":"boolean"},"id":{"maxLength":256,"type":"string"},"keyframe_count":{"maximum":1024,"minimum":0,"type":"integer"},"opaque":{"type":"boolean"},"property":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"},"service":{"maxLength":256,"type":"string"},"value_milli":{"maximum":24000,"minimum":-60000,"type":["integer","null"]}},"required":["reference","id","service","property","value_milli","enabled","keyframe_count","opaque"],"type":"object"},"maxItems":100,"type":"array"},"revision":{"maxLength":64,"type":"string"},"total":{"maximum":100000,"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["revision","items","total","cursor","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.effect.patch","version":"0.1.0","description":"Offline semantic effect.patch. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"clip":{"maxLength":80,"type":"string"},"effect":{"maxLength":80,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"value_milli":{"maximum":24000,"minimum":-60000,"type":"integer"}},"required":["project","expected_revision","sequence","clip","effect","value_milli"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.effect.remove","version":"0.1.0","description":"Offline semantic effect.remove. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"clip":{"maxLength":80,"type":"string"},"effect":{"maxLength":80,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","clip","effect"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"destructive","idempotency":"destructive","timeout_ms":30000,"dry_run":false,"interactive_consent":true,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.effect.search","version":"0.1.0","description":"Offline semantic effect.search. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"query":{"maxLength":128,"type":"string"}},"required":[],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"available":{"type":"boolean"},"maximum_milli":{"maximum":24000,"minimum":-60000,"type":"integer"},"metadata_untrusted":{"type":"boolean"},"minimum_milli":{"maximum":24000,"minimum":-60000,"type":"integer"},"property":{"maxLength":256,"type":"string"},"service":{"maxLength":256,"type":"string"}},"required":["service","property","minimum_milli","maximum_milli","available","metadata_untrusted"],"type":"object"},"maxItems":2,"type":"array"},"mlt_version":{"maxLength":2048,"type":["string","null"]}},"required":["items","mlt_version"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.frames.encode","version":"0.1.0","description":"Verify a Motion Canvas artifact manifest and its PNG hashes, then encode a bounded video-only FFV1 Matroska mezzanine with the pinned confined ffmpeg runtime.","input_schema":{"additionalProperties":false,"properties":{"expected_manifest_sha256":{"maxLength":64,"type":"string"},"manifest_path":{"maxLength":4096,"type":"string"},"max_bytes":{"maximum":1073741824,"minimum":1,"type":"integer"},"output_path":{"maxLength":4096,"type":"string"},"root":{"enum":["project","media","output"],"type":"string"}},"required":["root","manifest_path","expected_manifest_sha256","output_path","max_bytes"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"artifact":{"additionalProperties":false,"properties":{"bytes":{"maximum":1073741824,"minimum":1,"type":"integer"},"path":{"maxLength":4096,"type":"string"},"root":{"maxLength":64,"type":"string"},"sha256":{"maxLength":64,"type":"string"}},"required":["root","path","sha256","bytes"],"type":"object"},"codec":{"enum":["ffv1"],"type":"string"},"container":{"enum":["matroska"],"type":"string"},"fps_den":{"maximum":1001,"minimum":1,"type":"integer"},"fps_num":{"maximum":120000,"minimum":1,"type":"integer"},"frame_count":{"maximum":36000,"minimum":1,"type":"integer"},"height":{"maximum":4096,"minimum":1,"type":"integer"},"media":{"additionalProperties":false,"properties":{"audio":{"type":"boolean"},"codecs":{"items":{"maxLength":128,"type":"string"},"maxItems":16,"type":"array"},"duration_den":{"maximum":1000000000,"minimum":0,"type":"integer"},"duration_num":{"maximum":1000000000000,"minimum":0,"type":"integer"},"frames":{"maximum":100000000,"minimum":0,"type":["integer","null"]},"height":{"maximum":16384,"minimum":1,"type":["integer","null"]},"video":{"type":"boolean"},"width":{"maximum":16384,"minimum":1,"type":["integer","null"]}},"required":["width","height","frames","duration_num","duration_den","audio","video","codecs"],"type":"object"},"source_manifest_sha256":{"maxLength":64,"type":"string"},"width":{"maximum":4096,"minimum":1,"type":"integer"}},"required":["artifact","source_manifest_sha256","codec","container","frame_count","width","height","fps_num","fps_den","media"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":300000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt","artifact-in:motion/frame-sequence","artifact-out:video/mezzanine"],"object_types":["video-artifact"]},{"descriptor":{"name":"driver.mlt-video.keyframe.list","version":"0.1.0","description":"Offline semantic keyframe.list. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"clip":{"maxLength":80,"type":"string"},"cursor":{"maxLength":128,"type":"string"},"effect":{"maxLength":80,"type":"string"},"limit":{"maximum":100,"minimum":1,"type":"integer"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","sequence","clip","effect"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":["string","null"]},"items":{"items":{"additionalProperties":false,"properties":{"frame":{"maximum":100000000,"minimum":0,"type":"integer"},"interpolation":{"enum":["linear","hold"],"type":"string"},"value_milli":{"maximum":24000,"minimum":-60000,"type":"integer"}},"required":["frame","value_milli","interpolation"],"type":"object"},"maxItems":100,"type":"array"},"revision":{"maxLength":64,"type":"string"},"total":{"maximum":100000,"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["revision","items","total","cursor","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.keyframe.remove","version":"0.1.0","description":"Offline semantic keyframe.remove. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"clip":{"maxLength":80,"type":"string"},"effect":{"maxLength":80,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"frame":{"maximum":100000000,"minimum":0,"type":"integer"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","clip","effect","frame"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"destructive","idempotency":"destructive","timeout_ms":30000,"dry_run":false,"interactive_consent":true,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.keyframe.set","version":"0.1.0","description":"Offline semantic keyframe.set. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"clip":{"maxLength":80,"type":"string"},"effect":{"maxLength":80,"type":"string"},"expected_revision":{"maxLength":64,"type":"string"},"frame":{"maximum":100000000,"minimum":0,"type":"integer"},"interpolation":{"enum":["linear","hold"],"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"value_milli":{"maximum":24000,"minimum":-60000,"type":"integer"}},"required":["project","expected_revision","sequence","clip","effect","frame","value_milli","interpolation"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.marker.add","version":"0.1.0","description":"Offline semantic marker.add. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"expected_revision":{"maxLength":64,"type":"string"},"frame":{"maximum":100000000,"minimum":0,"type":"integer"},"label":{"maxLength":4096,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","frame","label"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.marker.list","version":"0.1.0","description":"Offline semantic marker.list. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":"string"},"limit":{"maximum":100,"minimum":1,"type":"integer"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","sequence"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":["string","null"]},"items":{"items":{"additionalProperties":false,"properties":{"frame":{"maximum":100000000,"minimum":0,"type":"integer"},"id":{"maxLength":256,"type":"string"},"label":{"maxLength":4096,"type":"string"},"reference":{"maxLength":80,"type":"string"},"tags":{"items":{"maxLength":128,"type":"string"},"maxItems":16,"type":"array"}},"required":["reference","id","frame","label","tags"],"type":"object"},"maxItems":100,"type":"array"},"revision":{"maxLength":64,"type":"string"},"total":{"maximum":100000,"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["revision","items","total","cursor","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.marker.patch","version":"0.1.0","description":"Offline semantic marker.patch. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"expected_revision":{"maxLength":64,"type":"string"},"frame":{"maximum":100000000,"minimum":0,"type":"integer"},"label":{"maxLength":4096,"type":"string"},"marker":{"maxLength":80,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","marker","frame","label"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.marker.remove","version":"0.1.0","description":"Offline semantic marker.remove. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"expected_revision":{"maxLength":64,"type":"string"},"marker":{"maxLength":80,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","marker"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"destructive","idempotency":"destructive","timeout_ms":30000,"dry_run":false,"interactive_consent":true,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.project.close","version":"0.1.0","description":"Offline semantic project.close. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"expected_revision":{"maxLength":64,"type":"string"},"project":{"maxLength":80,"type":"string"}},"required":["project","expected_revision"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"closed":{"type":"boolean"}},"required":["closed"],"type":"object"},"requires":["driver:mlt-video"],"risk":"destructive","idempotency":"destructive","timeout_ms":10000,"dry_run":false,"interactive_consent":true,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.project.create","version":"0.1.0","description":"Offline semantic project.create. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"profile":{"additionalProperties":false,"properties":{"audio_channels":{"maximum":8,"minimum":1,"type":"integer"},"colorspace":{"maximum":100000,"minimum":0,"type":"integer"},"display_aspect_den":{"maximum":100000,"minimum":1,"type":"integer"},"display_aspect_num":{"maximum":100000,"minimum":1,"type":"integer"},"fps_den":{"maximum":100000,"minimum":1,"type":"integer"},"fps_num":{"maximum":240000,"minimum":1,"type":"integer"},"height":{"maximum":4096,"minimum":2,"type":"integer"},"progressive":{"type":"boolean"},"sample_aspect_den":{"maximum":100000,"minimum":1,"type":"integer"},"sample_aspect_num":{"maximum":100000,"minimum":1,"type":"integer"},"width":{"maximum":4096,"minimum":2,"type":"integer"}},"required":["width","height","fps_num","fps_den","progressive","sample_aspect_num","sample_aspect_den","display_aspect_num","display_aspect_den","colorspace","audio_channels"],"type":"object"}},"required":[],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"format":{"enum":["generic_mlt","kdenlive","shotcut","shotcut_export","shotcut_virtual"],"type":"string"},"project":{"maxLength":80,"type":"string"},"revision":{"maxLength":64,"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["project","revision","format","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":10000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.project.diff","version":"0.1.0","description":"Offline semantic project.diff. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"other":{"maxLength":80,"type":"string"},"project":{"maxLength":80,"type":"string"}},"required":["project","other"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"added":{"items":{"maxLength":256,"type":"string"},"maxItems":10000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"changed":{"items":{"maxLength":256,"type":"string"},"maxItems":10000,"type":"array"},"profile_changed":{"type":"boolean"},"removed":{"items":{"maxLength":256,"type":"string"},"maxItems":10000,"type":"array"}},"required":["added","removed","changed","profile_changed","before_frames","after_frames"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.project.format","version":"0.1.0","description":"Offline semantic project.format. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"project":{"maxLength":80,"type":"string"}},"required":["project"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"format":{"enum":["generic_mlt","kdenlive","shotcut","shotcut_export","shotcut_virtual"],"type":"string"},"mutations":{"items":{"additionalProperties":false,"properties":{"operation":{"maxLength":256,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"}},"required":["operation","support"],"type":"object"},"maxItems":100,"type":"array"},"version":{"maxLength":256,"type":["string","null"]},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["format","version","mutations","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.project.inspect","version":"0.1.0","description":"Offline semantic project.inspect. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"project":{"maxLength":80,"type":"string"}},"required":["project"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"asset_count":{"maximum":10000,"minimum":0,"type":"integer"},"clip_count":{"maximum":10000,"minimum":0,"type":"integer"},"deep_editable":{"type":"boolean"},"format":{"enum":["generic_mlt","kdenlive","shotcut","shotcut_export","shotcut_virtual"],"type":"string"},"profile":{"additionalProperties":false,"properties":{"audio_channels":{"maximum":8,"minimum":1,"type":"integer"},"colorspace":{"maximum":100000,"minimum":0,"type":"integer"},"display_aspect_den":{"maximum":100000,"minimum":1,"type":"integer"},"display_aspect_num":{"maximum":100000,"minimum":1,"type":"integer"},"fps_den":{"maximum":100000,"minimum":1,"type":"integer"},"fps_num":{"maximum":240000,"minimum":1,"type":"integer"},"height":{"maximum":4096,"minimum":2,"type":"integer"},"progressive":{"type":"boolean"},"sample_aspect_den":{"maximum":100000,"minimum":1,"type":"integer"},"sample_aspect_num":{"maximum":100000,"minimum":1,"type":"integer"},"width":{"maximum":4096,"minimum":2,"type":"integer"}},"required":["width","height","fps_num","fps_den","progressive","sample_aspect_num","sample_aspect_den","display_aspect_num","display_aspect_den","colorspace","audio_channels"],"type":"object"},"project":{"maxLength":80,"type":"string"},"revision":{"maxLength":64,"type":"string"},"sequences":{"items":{"additionalProperties":false,"properties":{"duration":{"maximum":100000000,"minimum":0,"type":"integer"},"id":{"maxLength":256,"type":"string"},"name":{"maxLength":4096,"type":"string"},"nested_sequences":{"items":{"maxLength":256,"type":"string"},"maxItems":32,"type":"array"},"opaque":{"type":"boolean"},"reference":{"maxLength":80,"type":"string"},"track_count":{"maximum":128,"minimum":0,"type":"integer"}},"required":["reference","id","name","duration","track_count","nested_sequences","opaque"],"type":"object"},"maxItems":32,"type":"array"},"track_count":{"maximum":128,"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["project","revision","format","profile","sequences","asset_count","track_count","clip_count","deep_editable","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.project.open","version":"0.1.0","description":"Offline semantic project.open. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"path":{"maxLength":4096,"type":"string"},"root":{"enum":["project","output"],"type":"string"}},"required":["root","path"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"format":{"enum":["generic_mlt","kdenlive","shotcut","shotcut_export","shotcut_virtual"],"type":"string"},"project":{"maxLength":80,"type":"string"},"revision":{"maxLength":64,"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["project","revision","format","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":30000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.project.profile.get","version":"0.1.0","description":"Offline semantic project.profile.get. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"project":{"maxLength":80,"type":"string"}},"required":["project"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"audio_channels":{"maximum":8,"minimum":1,"type":"integer"},"colorspace":{"maximum":100000,"minimum":0,"type":"integer"},"display_aspect_den":{"maximum":100000,"minimum":1,"type":"integer"},"display_aspect_num":{"maximum":100000,"minimum":1,"type":"integer"},"fps_den":{"maximum":100000,"minimum":1,"type":"integer"},"fps_num":{"maximum":240000,"minimum":1,"type":"integer"},"height":{"maximum":4096,"minimum":2,"type":"integer"},"progressive":{"type":"boolean"},"sample_aspect_den":{"maximum":100000,"minimum":1,"type":"integer"},"sample_aspect_num":{"maximum":100000,"minimum":1,"type":"integer"},"width":{"maximum":4096,"minimum":2,"type":"integer"}},"required":["width","height","fps_num","fps_den","progressive","sample_aspect_num","sample_aspect_den","display_aspect_num","display_aspect_den","colorspace","audio_channels"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.project.profile.set","version":"0.1.0","description":"Offline semantic project.profile.set. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"expected_revision":{"maxLength":64,"type":"string"},"preview":{"type":"boolean"},"profile":{"additionalProperties":false,"properties":{"audio_channels":{"maximum":8,"minimum":1,"type":"integer"},"colorspace":{"maximum":100000,"minimum":0,"type":"integer"},"display_aspect_den":{"maximum":100000,"minimum":1,"type":"integer"},"display_aspect_num":{"maximum":100000,"minimum":1,"type":"integer"},"fps_den":{"maximum":100000,"minimum":1,"type":"integer"},"fps_num":{"maximum":240000,"minimum":1,"type":"integer"},"height":{"maximum":4096,"minimum":2,"type":"integer"},"progressive":{"type":"boolean"},"sample_aspect_den":{"maximum":100000,"minimum":1,"type":"integer"},"sample_aspect_num":{"maximum":100000,"minimum":1,"type":"integer"},"width":{"maximum":4096,"minimum":2,"type":"integer"}},"required":["width","height","fps_num","fps_den","progressive","sample_aspect_num","sample_aspect_den","display_aspect_num","display_aspect_den","colorspace","audio_channels"],"type":"object"},"project":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","profile"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.project.save_as","version":"0.1.0","description":"Offline semantic project.save_as. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"expected_revision":{"maxLength":64,"type":"string"},"path":{"maxLength":4096,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","path"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"artifact":{"additionalProperties":false,"properties":{"bytes":{"maximum":1073741824,"minimum":0,"type":"integer"},"path":{"maxLength":4096,"type":"string"},"root":{"enum":["output"],"type":"string"},"sha256":{"maxLength":64,"type":"string"}},"required":["root","path","sha256","bytes"],"type":["object","null"]},"project_revision":{"maxLength":64,"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"},"written":{"type":"boolean"}},"required":["written","artifact","project_revision","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.project.validate","version":"0.1.0","description":"Offline semantic project.validate. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"project":{"maxLength":80,"type":"string"}},"required":["project"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"revision":{"maxLength":64,"type":"string"},"valid":{"type":"boolean"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["valid","revision","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.render.cancel","version":"0.1.0","description":"Offline semantic render.cancel. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"job":{"maxLength":80,"type":"string"}},"required":["job"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"artifact":{"additionalProperties":false,"properties":{"bytes":{"maximum":1073741824,"minimum":0,"type":"integer"},"path":{"maxLength":4096,"type":"string"},"root":{"enum":["output"],"type":"string"},"sha256":{"maxLength":64,"type":"string"}},"required":["root","path","sha256","bytes"],"type":["object","null"]},"cancellation_requested":{"type":"boolean"},"completed_at_ms":{"maximum":18446744073709551615,"minimum":0,"type":["integer","null"]},"created_at_ms":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"error":{"additionalProperties":false,"properties":{"code":{"enum":["Unsupported","Unavailable","PermissionDenied","ConsentRequired","PolicyDenied","NotFound","AmbiguousTarget","StaleReference","BackendFailed","Timeout","InvalidArgument","PluginProtocolError","SandboxDenied","Conflict","Cancelled","Internal","ProtocolMismatch","ResourceExhausted"],"type":"string"},"message":{"maxLength":2048,"type":"string"},"outcome_known":{"type":"boolean"}},"required":["code","message","outcome_known"],"type":["object","null"]},"job":{"maxLength":80,"type":"string"},"media":{"additionalProperties":false,"properties":{"audio":{"type":"boolean"},"codecs":{"items":{"maxLength":256,"type":"string"},"maxItems":16,"type":"array"},"duration_den":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"duration_num":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"frames":{"maximum":100000000,"minimum":0,"type":["integer","null"]},"height":{"maximum":100000000,"minimum":0,"type":["integer","null"]},"video":{"type":"boolean"},"width":{"maximum":100000000,"minimum":0,"type":["integer","null"]}},"required":["width","height","frames","duration_num","duration_den","audio","video","codecs"],"type":["object","null"]},"output":{"maxLength":4096,"type":"string"},"profile":{"maxLength":256,"type":"string"},"progress":{"type":"null"},"project_revision":{"maxLength":64,"type":"string"},"started_at_ms":{"maximum":18446744073709551615,"minimum":0,"type":["integer","null"]},"state":{"enum":["queued","starting","running","succeeded","failed","cancelled","unknown"],"type":"string"}},"required":["job","project_revision","profile","output","state","progress","created_at_ms","started_at_ms","completed_at_ms","artifact","media","error","cancellation_requested"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":10000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.render.plan","version":"0.1.0","description":"Offline semantic render.plan. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"output":{"maxLength":4096,"type":"string"},"profile":{"maxLength":256,"type":"string"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","sequence","profile","output"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"frames":{"maximum":100000000,"minimum":0,"type":"integer"},"media":{"items":{"additionalProperties":false,"properties":{"asset":{"maxLength":256,"type":"string"},"path":{"maxLength":4096,"type":"string"},"root":{"enum":["project","media","output"],"type":"string"}},"required":["asset","root","path"],"type":"object"},"maxItems":10000,"type":"array"},"missing_services":{"items":{"maxLength":256,"type":"string"},"maxItems":2048,"type":"array"},"output_path":{"maxLength":4096,"type":"string"},"output_root":{"enum":["output"],"type":"string"},"profile":{"maxLength":256,"type":"string"},"project_revision":{"maxLength":64,"type":"string"},"runnable":{"type":"boolean"},"sequence":{"maxLength":256,"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["project_revision","sequence","profile","output_root","output_path","frames","runnable","missing_services","media","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":30000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.render.profiles","version":"0.1.0","description":"Offline semantic render.profiles. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{},"required":[],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"mlt_version":{"maxLength":2048,"type":["string","null"]},"profiles":{"items":{"additionalProperties":false,"properties":{"audio_codec":{"maxLength":256,"type":["string","null"]},"available":{"type":"boolean"},"container":{"maxLength":256,"type":"string"},"extension":{"maxLength":256,"type":"string"},"height":{"maximum":100000000,"minimum":0,"type":["integer","null"]},"id":{"maxLength":256,"type":"string"},"video_codec":{"maxLength":256,"type":["string","null"]},"width":{"maximum":100000000,"minimum":0,"type":["integer","null"]}},"required":["id","available","width","height","video_codec","audio_codec","container","extension"],"type":"object"},"maxItems":5,"type":"array"}},"required":["profiles","mlt_version"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.render.result","version":"0.1.0","description":"Offline semantic render.result. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"job":{"maxLength":80,"type":"string"}},"required":["job"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"artifact":{"additionalProperties":false,"properties":{"bytes":{"maximum":1073741824,"minimum":0,"type":"integer"},"path":{"maxLength":4096,"type":"string"},"root":{"enum":["output"],"type":"string"},"sha256":{"maxLength":64,"type":"string"}},"required":["root","path","sha256","bytes"],"type":["object","null"]},"cancellation_requested":{"type":"boolean"},"completed_at_ms":{"maximum":18446744073709551615,"minimum":0,"type":["integer","null"]},"created_at_ms":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"error":{"additionalProperties":false,"properties":{"code":{"enum":["Unsupported","Unavailable","PermissionDenied","ConsentRequired","PolicyDenied","NotFound","AmbiguousTarget","StaleReference","BackendFailed","Timeout","InvalidArgument","PluginProtocolError","SandboxDenied","Conflict","Cancelled","Internal","ProtocolMismatch","ResourceExhausted"],"type":"string"},"message":{"maxLength":2048,"type":"string"},"outcome_known":{"type":"boolean"}},"required":["code","message","outcome_known"],"type":["object","null"]},"job":{"maxLength":80,"type":"string"},"media":{"additionalProperties":false,"properties":{"audio":{"type":"boolean"},"codecs":{"items":{"maxLength":256,"type":"string"},"maxItems":16,"type":"array"},"duration_den":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"duration_num":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"frames":{"maximum":100000000,"minimum":0,"type":["integer","null"]},"height":{"maximum":100000000,"minimum":0,"type":["integer","null"]},"video":{"type":"boolean"},"width":{"maximum":100000000,"minimum":0,"type":["integer","null"]}},"required":["width","height","frames","duration_num","duration_den","audio","video","codecs"],"type":["object","null"]},"output":{"maxLength":4096,"type":"string"},"profile":{"maxLength":256,"type":"string"},"progress":{"type":"null"},"project_revision":{"maxLength":64,"type":"string"},"started_at_ms":{"maximum":18446744073709551615,"minimum":0,"type":["integer","null"]},"state":{"enum":["queued","starting","running","succeeded","failed","cancelled","unknown"],"type":"string"}},"required":["job","project_revision","profile","output","state","progress","created_at_ms","started_at_ms","completed_at_ms","artifact","media","error","cancellation_requested"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.render.start","version":"0.1.0","description":"Offline semantic render.start. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"expected_revision":{"maxLength":64,"type":"string"},"output":{"maxLength":4096,"type":"string"},"profile":{"maxLength":256,"type":"string"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","profile","output"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"artifact":{"additionalProperties":false,"properties":{"bytes":{"maximum":1073741824,"minimum":0,"type":"integer"},"path":{"maxLength":4096,"type":"string"},"root":{"enum":["output"],"type":"string"},"sha256":{"maxLength":64,"type":"string"}},"required":["root","path","sha256","bytes"],"type":["object","null"]},"cancellation_requested":{"type":"boolean"},"completed_at_ms":{"maximum":18446744073709551615,"minimum":0,"type":["integer","null"]},"created_at_ms":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"error":{"additionalProperties":false,"properties":{"code":{"enum":["Unsupported","Unavailable","PermissionDenied","ConsentRequired","PolicyDenied","NotFound","AmbiguousTarget","StaleReference","BackendFailed","Timeout","InvalidArgument","PluginProtocolError","SandboxDenied","Conflict","Cancelled","Internal","ProtocolMismatch","ResourceExhausted"],"type":"string"},"message":{"maxLength":2048,"type":"string"},"outcome_known":{"type":"boolean"}},"required":["code","message","outcome_known"],"type":["object","null"]},"job":{"maxLength":80,"type":"string"},"media":{"additionalProperties":false,"properties":{"audio":{"type":"boolean"},"codecs":{"items":{"maxLength":256,"type":"string"},"maxItems":16,"type":"array"},"duration_den":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"duration_num":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"frames":{"maximum":100000000,"minimum":0,"type":["integer","null"]},"height":{"maximum":100000000,"minimum":0,"type":["integer","null"]},"video":{"type":"boolean"},"width":{"maximum":100000000,"minimum":0,"type":["integer","null"]}},"required":["width","height","frames","duration_num","duration_den","audio","video","codecs"],"type":["object","null"]},"output":{"maxLength":4096,"type":"string"},"profile":{"maxLength":256,"type":"string"},"progress":{"type":"null"},"project_revision":{"maxLength":64,"type":"string"},"started_at_ms":{"maximum":18446744073709551615,"minimum":0,"type":["integer","null"]},"state":{"enum":["queued","starting","running","succeeded","failed","cancelled","unknown"],"type":"string"}},"required":["job","project_revision","profile","output","state","progress","created_at_ms","started_at_ms","completed_at_ms","artifact","media","error","cancellation_requested"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":120000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.render.status","version":"0.1.0","description":"Offline semantic render.status. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"job":{"maxLength":80,"type":"string"}},"required":["job"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"artifact":{"additionalProperties":false,"properties":{"bytes":{"maximum":1073741824,"minimum":0,"type":"integer"},"path":{"maxLength":4096,"type":"string"},"root":{"enum":["output"],"type":"string"},"sha256":{"maxLength":64,"type":"string"}},"required":["root","path","sha256","bytes"],"type":["object","null"]},"cancellation_requested":{"type":"boolean"},"completed_at_ms":{"maximum":18446744073709551615,"minimum":0,"type":["integer","null"]},"created_at_ms":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"error":{"additionalProperties":false,"properties":{"code":{"enum":["Unsupported","Unavailable","PermissionDenied","ConsentRequired","PolicyDenied","NotFound","AmbiguousTarget","StaleReference","BackendFailed","Timeout","InvalidArgument","PluginProtocolError","SandboxDenied","Conflict","Cancelled","Internal","ProtocolMismatch","ResourceExhausted"],"type":"string"},"message":{"maxLength":2048,"type":"string"},"outcome_known":{"type":"boolean"}},"required":["code","message","outcome_known"],"type":["object","null"]},"job":{"maxLength":80,"type":"string"},"media":{"additionalProperties":false,"properties":{"audio":{"type":"boolean"},"codecs":{"items":{"maxLength":256,"type":"string"},"maxItems":16,"type":"array"},"duration_den":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"duration_num":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"frames":{"maximum":100000000,"minimum":0,"type":["integer","null"]},"height":{"maximum":100000000,"minimum":0,"type":["integer","null"]},"video":{"type":"boolean"},"width":{"maximum":100000000,"minimum":0,"type":["integer","null"]}},"required":["width","height","frames","duration_num","duration_den","audio","video","codecs"],"type":["object","null"]},"output":{"maxLength":4096,"type":"string"},"profile":{"maxLength":256,"type":"string"},"progress":{"type":"null"},"project_revision":{"maxLength":64,"type":"string"},"started_at_ms":{"maximum":18446744073709551615,"minimum":0,"type":["integer","null"]},"state":{"enum":["queued","starting","running","succeeded","failed","cancelled","unknown"],"type":"string"}},"required":["job","project_revision","profile","output","state","progress","created_at_ms","started_at_ms","completed_at_ms","artifact","media","error","cancellation_requested"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.search","version":"0.1.0","description":"Offline semantic search. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":"string"},"end":{"maximum":100000000,"minimum":0,"type":"integer"},"kind":{"enum":["asset","clip","track","marker","effect"],"type":"string"},"limit":{"maximum":100,"minimum":1,"type":"integer"},"project":{"maxLength":80,"type":"string"},"query":{"maxLength":128,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"start":{"maximum":100000000,"minimum":0,"type":"integer"},"track":{"maxLength":80,"type":"string"}},"required":["project","query"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":["string","null"]},"items":{"items":{"additionalProperties":false,"properties":{"duration":{"maximum":100000000,"minimum":0,"type":["integer","null"]},"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"name":{"maxLength":4096,"type":"string"},"reference":{"maxLength":80,"type":"string"},"sequence_id":{"maxLength":256,"type":["string","null"]},"start":{"maximum":100000000,"minimum":0,"type":["integer","null"]},"track_id":{"maxLength":256,"type":["string","null"]}},"required":["kind","reference","id","name","sequence_id","track_id","start","duration"],"type":"object"},"maxItems":100,"type":"array"},"revision":{"maxLength":64,"type":"string"},"total":{"maximum":100000,"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["revision","items","total","cursor","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.sequence.create","version":"0.1.0","description":"Offline semantic sequence.create. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"expected_revision":{"maxLength":64,"type":"string"},"name":{"maxLength":512,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","name"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.sequence.duration","version":"0.1.0","description":"Offline semantic sequence.duration. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","sequence"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"fps_den":{"maximum":100000,"minimum":1,"type":"integer"},"fps_num":{"maximum":240000,"minimum":1,"type":"integer"},"frames":{"maximum":100000000,"minimum":0,"type":"integer"}},"required":["frames","fps_num","fps_den"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.sequence.inspect","version":"0.1.0","description":"Offline semantic sequence.inspect. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","sequence"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":["string","null"]},"items":{"items":{"additionalProperties":false,"properties":{"duration":{"maximum":100000000,"minimum":0,"type":"integer"},"id":{"maxLength":256,"type":"string"},"name":{"maxLength":4096,"type":"string"},"nested_sequences":{"items":{"maxLength":256,"type":"string"},"maxItems":32,"type":"array"},"opaque":{"type":"boolean"},"reference":{"maxLength":80,"type":"string"},"track_count":{"maximum":128,"minimum":0,"type":"integer"}},"required":["reference","id","name","duration","track_count","nested_sequences","opaque"],"type":"object"},"maxItems":100,"type":"array"},"revision":{"maxLength":64,"type":"string"},"total":{"maximum":100000,"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["revision","items","total","cursor","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.sequence.list","version":"0.1.0","description":"Offline semantic sequence.list. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":"string"},"limit":{"maximum":100,"minimum":1,"type":"integer"},"project":{"maxLength":80,"type":"string"}},"required":["project"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":["string","null"]},"items":{"items":{"additionalProperties":false,"properties":{"duration":{"maximum":100000000,"minimum":0,"type":"integer"},"id":{"maxLength":256,"type":"string"},"name":{"maxLength":4096,"type":"string"},"nested_sequences":{"items":{"maxLength":256,"type":"string"},"maxItems":32,"type":"array"},"opaque":{"type":"boolean"},"reference":{"maxLength":80,"type":"string"},"track_count":{"maximum":128,"minimum":0,"type":"integer"}},"required":["reference","id","name","duration","track_count","nested_sequences","opaque"],"type":"object"},"maxItems":100,"type":"array"},"revision":{"maxLength":64,"type":"string"},"total":{"maximum":100000,"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["revision","items","total","cursor","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.sync.probe","version":"0.1.0","description":"Decode bounded technical flash/impulse sync markers with the pinned confined ffprobe runtime; optionally scan the complete master up to 60 seconds. No caller-supplied filter graph or argv.","input_schema":{"additionalProperties":false,"properties":{"cues":{"items":{"additionalProperties":false,"properties":{"expected_us":{"maximum":600000000,"minimum":0,"type":"integer"},"id":{"maxLength":96,"type":"string"}},"required":["id","expected_us"],"type":"object"},"maxItems":16,"type":"array"},"expected_sha256":{"maxLength":64,"type":"string"},"full_scan":{"type":"boolean"},"path":{"maxLength":4096,"type":"string"},"root":{"enum":["project","media","output"],"type":"string"},"window_us":{"maximum":500000,"minimum":10000,"type":"integer"}},"required":["root","path","expected_sha256","window_us","cues"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"artifact_sha256":{"maxLength":64,"type":"string"},"coverage":{"enum":["cue_windows","full_scan"],"type":"string"},"decoder":{"maxLength":128,"type":"string"},"decoder_sha256":{"maxLength":64,"type":"string"},"exhaustive_audio":{"type":"boolean"},"exhaustive_video":{"type":"boolean"},"flashes":{"items":{"additionalProperties":false,"properties":{"confidence":{"maximum":10000,"minimum":0,"type":"integer"},"cue_id":{"maxLength":96,"type":"string"},"presentation_time_us":{"maximum":600000000,"minimum":0,"type":"integer"},"uncertainty_us":{"maximum":500000,"minimum":0,"type":"integer"}},"required":["cue_id","presentation_time_us","uncertainty_us","confidence"],"type":"object"},"maxItems":16,"type":"array"},"impulses":{"items":{"additionalProperties":false,"properties":{"confidence":{"maximum":10000,"minimum":0,"type":"integer"},"cue_id":{"maxLength":96,"type":"string"},"presentation_time_us":{"maximum":600000000,"minimum":0,"type":"integer"},"uncertainty_us":{"maximum":500000,"minimum":0,"type":"integer"}},"required":["cue_id","presentation_time_us","uncertainty_us","confidence"],"type":"object"},"maxItems":16,"type":"array"},"missing_audio":{"items":{"maxLength":96,"type":"string"},"maxItems":16,"type":"array"},"missing_video":{"items":{"maxLength":96,"type":"string"},"maxItems":16,"type":"array"},"window_us":{"maximum":500000,"minimum":10000,"type":"integer"}},"required":["artifact_sha256","decoder","decoder_sha256","coverage","exhaustive_video","exhaustive_audio","window_us","flashes","impulses","missing_video","missing_audio"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":180000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","audio","sync","offline","ffprobe"],"object_types":["video-artifact"]},{"descriptor":{"name":"driver.mlt-video.track.create","version":"0.1.0","description":"Offline semantic track.create. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"expected_revision":{"maxLength":64,"type":"string"},"kind":{"enum":["av","video","audio"],"type":"string"},"name":{"maxLength":512,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","name","kind"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.track.hide","version":"0.1.0","description":"Offline semantic track.hide. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"expected_revision":{"maxLength":64,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"track":{"maxLength":80,"type":"string"},"value":{"type":"boolean"}},"required":["project","expected_revision","sequence","track","value"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.track.inspect","version":"0.1.0","description":"Offline semantic track.inspect. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"track":{"maxLength":80,"type":"string"}},"required":["project","sequence","track"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":["string","null"]},"items":{"items":{"additionalProperties":false,"properties":{"clip_count":{"maximum":10000,"minimum":0,"type":"integer"},"duration":{"maximum":100000000,"minimum":0,"type":"integer"},"hidden":{"type":"boolean"},"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":64,"type":"string"},"lane_count":{"maximum":8,"minimum":0,"type":"integer"},"muted":{"type":"boolean"},"name":{"maxLength":4096,"type":"string"},"opaque":{"type":"boolean"},"reference":{"maxLength":80,"type":"string"}},"required":["reference","id","name","kind","muted","hidden","lane_count","clip_count","duration","opaque"],"type":"object"},"maxItems":100,"type":"array"},"revision":{"maxLength":64,"type":"string"},"total":{"maximum":100000,"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["revision","items","total","cursor","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.track.list","version":"0.1.0","description":"Offline semantic track.list. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":"string"},"limit":{"maximum":100,"minimum":1,"type":"integer"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","sequence"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":["string","null"]},"items":{"items":{"additionalProperties":false,"properties":{"clip_count":{"maximum":10000,"minimum":0,"type":"integer"},"duration":{"maximum":100000000,"minimum":0,"type":"integer"},"hidden":{"type":"boolean"},"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":64,"type":"string"},"lane_count":{"maximum":8,"minimum":0,"type":"integer"},"muted":{"type":"boolean"},"name":{"maxLength":4096,"type":"string"},"opaque":{"type":"boolean"},"reference":{"maxLength":80,"type":"string"}},"required":["reference","id","name","kind","muted","hidden","lane_count","clip_count","duration","opaque"],"type":"object"},"maxItems":100,"type":"array"},"revision":{"maxLength":64,"type":"string"},"total":{"maximum":100000,"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["revision","items","total","cursor","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.track.mute","version":"0.1.0","description":"Offline semantic track.mute. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"expected_revision":{"maxLength":64,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"track":{"maxLength":80,"type":"string"},"value":{"type":"boolean"}},"required":["project","expected_revision","sequence","track","value"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.track.remove","version":"0.1.0","description":"Offline semantic track.remove. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"expected_revision":{"maxLength":64,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"track":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","track"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"destructive","idempotency":"destructive","timeout_ms":30000,"dry_run":false,"interactive_consent":true,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.track.rename","version":"0.1.0","description":"Offline semantic track.rename. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"expected_revision":{"maxLength":64,"type":"string"},"name":{"maxLength":512,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"track":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","track","name"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.track.reorder","version":"0.1.0","description":"Offline semantic track.reorder. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"expected_revision":{"maxLength":64,"type":"string"},"index":{"maximum":127,"minimum":0,"type":"integer"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"track":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","track","index"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.transition.add","version":"0.1.0","description":"Offline semantic transition.add. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"a_track":{"maxLength":80,"type":"string"},"allow_metadata_risk":{"type":"boolean"},"b_track":{"maxLength":80,"type":"string"},"end":{"maximum":100000000,"minimum":0,"type":"integer"},"expected_revision":{"maxLength":64,"type":"string"},"kind":{"enum":["dissolve","audio_mix"],"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"start":{"maximum":100000000,"minimum":0,"type":"integer"}},"required":["project","expected_revision","sequence","kind","a_track","b_track","start","end"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.transition.inspect","version":"0.1.0","description":"Offline semantic transition.inspect. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"transition":{"maxLength":80,"type":"string"}},"required":["project","sequence","transition"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":["string","null"]},"items":{"items":{"additionalProperties":false,"properties":{"a_track":{"maxLength":256,"type":"string"},"b_track":{"maxLength":256,"type":"string"},"end":{"maximum":100000000,"minimum":0,"type":"integer"},"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"opaque":{"type":"boolean"},"reference":{"maxLength":80,"type":"string"},"reverse":{"type":"boolean"},"start":{"maximum":100000000,"minimum":0,"type":"integer"}},"required":["reference","id","kind","a_track","b_track","start","end","reverse","opaque"],"type":"object"},"maxItems":100,"type":"array"},"revision":{"maxLength":64,"type":"string"},"total":{"maximum":100000,"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["revision","items","total","cursor","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.transition.list","version":"0.1.0","description":"Offline semantic transition.list. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":"string"},"limit":{"maximum":100,"minimum":1,"type":"integer"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"}},"required":["project","sequence"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"cursor":{"maxLength":128,"type":["string","null"]},"items":{"items":{"additionalProperties":false,"properties":{"a_track":{"maxLength":256,"type":"string"},"b_track":{"maxLength":256,"type":"string"},"end":{"maximum":100000000,"minimum":0,"type":"integer"},"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"opaque":{"type":"boolean"},"reference":{"maxLength":80,"type":"string"},"reverse":{"type":"boolean"},"start":{"maximum":100000000,"minimum":0,"type":"integer"}},"required":["reference","id","kind","a_track","b_track","start","end","reverse","opaque"],"type":"object"},"maxItems":100,"type":"array"},"revision":{"maxLength":64,"type":"string"},"total":{"maximum":100000,"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["revision","items","total","cursor","warnings"],"type":"object"},"requires":["driver:mlt-video"],"risk":"read_only","idempotency":"read_only","timeout_ms":10000,"dry_run":true,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.transition.patch","version":"0.1.0","description":"Offline semantic transition.patch. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"end":{"maximum":100000000,"minimum":0,"type":"integer"},"expected_revision":{"maxLength":64,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"reverse":{"type":"boolean"},"sequence":{"maxLength":80,"type":"string"},"start":{"maximum":100000000,"minimum":0,"type":"integer"},"transition":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","transition","start","end","reverse"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"mutating","idempotency":"non_idempotent","timeout_ms":30000,"dry_run":false,"interactive_consent":false,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]},{"descriptor":{"name":"driver.mlt-video.transition.remove","version":"0.1.0","description":"Offline semantic transition.remove. Application data is untrusted; inspect format-level availability.","input_schema":{"additionalProperties":false,"properties":{"allow_metadata_risk":{"type":"boolean"},"expected_revision":{"maxLength":64,"type":"string"},"preview":{"type":"boolean"},"project":{"maxLength":80,"type":"string"},"sequence":{"maxLength":80,"type":"string"},"transition":{"maxLength":80,"type":"string"}},"required":["project","expected_revision","sequence","transition"],"type":"object"},"output_schema":{"additionalProperties":false,"properties":{"affected":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"after_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"applied":{"type":"boolean"},"before_frames":{"maximum":100000000,"minimum":0,"type":"integer"},"created":{"items":{"maxLength":256,"type":"string"},"maxItems":1000,"type":"array"},"created_refs":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":256,"type":"string"},"kind":{"maxLength":256,"type":"string"},"reference":{"maxLength":80,"type":"string"}},"required":["id","kind","reference"],"type":"object"},"maxItems":1000,"type":"array"},"expected_revision":{"maxLength":64,"type":"string"},"operation":{"maxLength":128,"type":"string"},"project":{"maxLength":80,"type":"string"},"resulting_revision":{"maxLength":64,"type":"string"},"support":{"enum":["SAFE_ROUNDTRIP","SUPPORTED_WITH_METADATA_RISK","MLT_RENDER_ONLY","UNSUPPORTED"],"type":"string"},"warnings":{"items":{"maxLength":2048,"type":"string"},"maxItems":64,"type":"array"}},"required":["applied","expected_revision","resulting_revision","operation","affected","created","before_frames","after_frames","support","warnings","project","created_refs"],"type":"object"},"requires":["driver:mlt-video"],"risk":"destructive","idempotency":"destructive","timeout_ms":30000,"dry_run":false,"interactive_consent":true,"backends":["driver:mlt-video"]},"aliases":[],"tags":["video","offline","mlt"],"object_types":["video-project"]}] \ No newline at end of file diff --git a/crates/driver-mlt-video/fixtures/expected/digests.json b/crates/driver-mlt-video/fixtures/expected/digests.json index 1e8082700..eaf067e3f 100644 --- a/crates/driver-mlt-video/fixtures/expected/digests.json +++ b/crates/driver-mlt-video/fixtures/expected/digests.json @@ -1,5 +1,5 @@ { - "catalog_sha256": "1987d57e2f3ed96c272eae1a59456bf4af7415e755a255650d1c4b77e2494693", + "catalog_sha256": "a30653066c11d95f2d632bc6f147d3a8cefd56b88bce7703b614e23b35c0d24d", "descriptor_sha256": { "driver.mlt-video.asset.import": "4de33c901da0526cc8fc503defa3e303e05ff12634a1acb2861fffecd8f01f8e", "driver.mlt-video.asset.inspect": "3e5a56169385238784bfcc2e8a761715ce40bce487c867a4f3fb058c2856cd98", @@ -49,7 +49,7 @@ "driver.mlt-video.project.validate": "efbc9338317357bed27320e185922a0a7963309e983f479be5f8d462f5753509", "driver.mlt-video.render.cancel": "66af788964b880fdfd65541a1a563b0fa2ee42d3de77b7e0397d09a95545c652", "driver.mlt-video.render.plan": "d4b13726b275ececcf6386d03e769c65a3af2844229a25f2475359a3f669feb6", - "driver.mlt-video.render.profiles": "ebabde9d4ae33a39f216a4de8b7e8566da20aa075a044faf54f7ffd31397ede9", + "driver.mlt-video.render.profiles": "713197d541fc78a1a793b46589520052deffd053a92225146944ccb75c24d4f6", "driver.mlt-video.render.result": "2ab3cdbcf6e09f12362f83c56e84a8e29327be131cc091de1a88d46de68c2ac0", "driver.mlt-video.render.start": "b322392546939cc6cd7281f92cd18f638c76e7416e356f33ef4f62d4ae2f5289", "driver.mlt-video.render.status": "494664293d83b66967bb5b4a24b61e2f55dfb6db9e5e43d08fd09fbbba019356", diff --git a/crates/driver-mlt-video/src/catalog.json b/crates/driver-mlt-video/src/catalog.json index 70cb544c0..c5a53e449 100644 --- a/crates/driver-mlt-video/src/catalog.json +++ b/crates/driver-mlt-video/src/catalog.json @@ -7806,7 +7806,10 @@ "maxLength": 256 }, "audio_codec": { - "type": "string", + "type": [ + "string", + "null" + ], "maxLength": 256 }, "container": { @@ -7830,7 +7833,7 @@ ], "additionalProperties": false }, - "maxItems": 4 + "maxItems": 5 }, "mlt_version": { "type": [ From fb79a12bd26cfb26666b05061216c0d3a5f4a1a5 Mon Sep 17 00:00:00 2001 From: Semwright integration Date: Sat, 10 Oct 2026 14:01:06 -0600 Subject: [PATCH 3/4] fix(mlt): count decoded FFV1 frames in production Host before publication --- .../src/bin/runtime_runner.rs | 57 ++++++--- crates/driver-mlt-video/src/main.rs | 121 ++++++++++++------ crates/driver-mlt-video/src/runtime.rs | 13 +- 3 files changed, 128 insertions(+), 63 deletions(-) diff --git a/crates/driver-mlt-video/src/bin/runtime_runner.rs b/crates/driver-mlt-video/src/bin/runtime_runner.rs index bd1527697..ea95d987d 100644 --- a/crates/driver-mlt-video/src/bin/runtime_runner.rs +++ b/crates/driver-mlt-video/src/bin/runtime_runner.rs @@ -166,26 +166,39 @@ fn probe( scratch_root: &Path, directory: &str, name: &str, + count_video_frames: bool, ) -> Result { let (work, target) = scratch_file(scratch_root, directory, name)?; - let args = [ - "-v", - "error", - "-show_streams", - "-show_format", - "-of", - "json", - ] - .into_iter() - .map(OsString::from) - .chain(std::iter::once(target.into_os_string())) - .collect(); + let mut args = vec![OsString::from("-v"), OsString::from("error")]; + if count_video_frames { + // Exact opt-in: independently decode *all* video frames while + // retaining the entire stream list, so unexpected audio remains + // visible to the Host and can never be hidden by select_streams. + args.push(OsString::from("-count_frames")); + } + if count_video_frames { + // Keep a small, closed observation document. Importantly do NOT + // select only video streams: any unexpected audio remains visible. + args.extend([ + "-show_streams", "-show_format", + "-show_entries", + "stream=codec_name,codec_type,width,height,nb_frames,nb_read_frames,channels,sample_rate:format=duration", + "-of", "json", + ].map(OsString::from)); + } else { + args.extend(["-show_streams", "-show_format", "-of", "json"].map(OsString::from)); + } + args.push(target.into_os_string()); let (stdout, _stderr) = execute( ffprobe, args, &work, - Duration::from_secs(5), - 30, + if count_video_frames { + Duration::from_secs(120) + } else { + Duration::from_secs(5) + }, + if count_video_frames { 180 } else { 30 }, 1_073_741_824, )?; let media: Value = serde_json::from_slice(&stdout) @@ -464,11 +477,19 @@ fn parse() -> Result { let scratch_root = PathBuf::from(required_flag(&mut args, "--scratch-root", "probe")?); let directory = required_flag(&mut args, "--directory", "probe")?; let name = required_flag(&mut args, "--name", "probe")?; - if args.next().is_some() { - return Err("runtime runner received unexpected arguments".into()); - } + let count_video_frames = match args.next() { + None => false, + Some(flag) if flag == "--count-video-frames" && args.next().is_none() => true, + _ => return Err("runtime runner received unexpected arguments".into()), + }; let ffprobe = runtime_entry(&runtime_root, &sealed_ffprobe, "ffprobe")?; - probe(&ffprobe, &scratch_root, &directory, &name) + probe( + &ffprobe, + &scratch_root, + &directory, + &name, + count_video_frames, + ) } "render" => { let runtime_root = PathBuf::from(required_flag(&mut args, "--runtime-root", "render")?); diff --git a/crates/driver-mlt-video/src/main.rs b/crates/driver-mlt-video/src/main.rs index 8e8958d29..9015220fc 100644 --- a/crates/driver-mlt-video/src/main.rs +++ b/crates/driver-mlt-video/src/main.rs @@ -465,7 +465,7 @@ impl MltVideoDriver { name: &str, context: &DriverExecutionContext, ) -> Result { - self.host_probe_staged_observed(directory, name, context) + self.host_probe_staged_observed(directory, name, false, context) .await .map(|(media, _)| media) } @@ -474,50 +474,61 @@ impl MltVideoDriver { &self, directory: &str, name: &str, + count_video_frames: bool, context: &DriverExecutionContext, ) -> Result<(MediaInfo, Vec)> { + let mut args = vec![ + RuntimeToolArg::Literal { + value: "probe".into(), + }, + RuntimeToolArg::Literal { + value: "--runtime-root".into(), + }, + RuntimeToolArg::MountPath { + mount: "mlt-runtime".into(), + relative: String::new(), + }, + RuntimeToolArg::Literal { + value: "--ffprobe-sealed".into(), + }, + RuntimeToolArg::ToolPath { + tool: "ffprobe".into(), + }, + RuntimeToolArg::Literal { + value: "--scratch-root".into(), + }, + RuntimeToolArg::MountPath { + mount: "scratch".into(), + relative: String::new(), + }, + RuntimeToolArg::Literal { + value: "--directory".into(), + }, + RuntimeToolArg::Literal { + value: directory.to_owned(), + }, + RuntimeToolArg::Literal { + value: "--name".into(), + }, + RuntimeToolArg::Literal { + value: name.to_owned(), + }, + ]; + if count_video_frames { + args.push(RuntimeToolArg::Literal { + value: "--count-video-frames".into(), + }); + } let output = context .execute_runtime_tool_args( "mlt-runner", - vec![ - RuntimeToolArg::Literal { - value: "probe".into(), - }, - RuntimeToolArg::Literal { - value: "--runtime-root".into(), - }, - RuntimeToolArg::MountPath { - mount: "mlt-runtime".into(), - relative: String::new(), - }, - RuntimeToolArg::Literal { - value: "--ffprobe-sealed".into(), - }, - RuntimeToolArg::ToolPath { - tool: "ffprobe".into(), - }, - RuntimeToolArg::Literal { - value: "--scratch-root".into(), - }, - RuntimeToolArg::MountPath { - mount: "scratch".into(), - relative: String::new(), - }, - RuntimeToolArg::Literal { - value: "--directory".into(), - }, - RuntimeToolArg::Literal { - value: directory.to_owned(), - }, - RuntimeToolArg::Literal { - value: "--name".into(), - }, - RuntimeToolArg::Literal { - value: name.to_owned(), - }, - ], + args, Vec::new(), - std::time::Duration::from_secs(30), + if count_video_frames { + std::time::Duration::from_secs(150) + } else { + std::time::Duration::from_secs(30) + }, None, ) .await?; @@ -827,9 +838,37 @@ impl MltVideoDriver { context: &DriverExecutionContext, ) -> Result<(semwright_mlt_video::fs::Artifact, MediaInfo)> { let scratch_path = diagnostic.scratch_path; - let (media, raw_probe) = self - .host_probe_staged_observed(diagnostic.directory, output_file, context) + let (mut media, raw_probe) = self + .host_probe_staged_observed( + diagnostic.directory, + output_file, + profile.id == "lossless-video-only", + context, + ) .await?; + if profile.id == "lossless-video-only" { + // The Host passed the exact --count-video-frames argument to + // FFprobe in the *same* confined runner. Require nb_read_frames: + // ordinary Matroska nb_frames is not proof of a full decode. + // Independently inspect all streams before publishing anything. + let envelope: Value = serde_json::from_slice(&raw_probe).map_err(|_| { + Error::new( + ErrorCode::PluginProtocolError, + "MLT decoded frame envelope is malformed", + ) + })?; + let observation = envelope.get("media").ok_or_else(|| { + Error::new( + ErrorCode::PluginProtocolError, + "MLT decoder has no complete stream evidence", + ) + })?; + let bytes = serde_json::to_vec(observation)?; + let observed = + semwright_mlt_video::runtime::parse_exact_ffv1_decoded_frame_count(&bytes) + .map_err(map_error)?; + media.frames = Some(observed); + } if let Err(error) = validate_render_media(&media, profile, expected_profile, frames) { // Evidence is an additional bounded JSON sibling inside the existing output grant. // Failure to retain it must not erase or soften the original validation failure. diff --git a/crates/driver-mlt-video/src/runtime.rs b/crates/driver-mlt-video/src/runtime.rs index bc3d7f960..2985efffd 100644 --- a/crates/driver-mlt-video/src/runtime.rs +++ b/crates/driver-mlt-video/src/runtime.rs @@ -1256,7 +1256,6 @@ impl Runtime { ) -> Result { let filename = format!("partial.{}", profile.extension); let mut info = self.probe(work, work, &filename, cancel)?; - validate_render_media(&info, profile, expected, frames)?; if profile.id == "lossless-video-only" { // A Matroska FFprobe header is not proof of frame count: many // Matroska streams omit nb_frames entirely. The new opt-in AV @@ -1271,6 +1270,7 @@ impl Runtime { } info.frames = Some(observed); } + validate_render_media(&info, profile, expected, frames)?; Ok(info) } @@ -1315,7 +1315,7 @@ impl Runtime { /// Check exactly one independently decoded video stream, never trusting /// the estimated Matroska duration or its often-missing nb_frames metadata. /// This returns only a count; raw media paths and decoder text stay private. -fn parse_exact_ffv1_decoded_frame_count(bytes: &[u8]) -> Result { +pub fn parse_exact_ffv1_decoded_frame_count(bytes: &[u8]) -> Result { if bytes.is_empty() || bytes.len() > 4096 { return Err(Error::limit( "Decoded video-only frame evidence is absent or unbounded", @@ -1426,7 +1426,10 @@ pub fn validate_render_media( _ => {} } if profile.id == "lossless-video-only" - && (!info.video || info.codecs.len() != 1 || info.codecs[0] != "ffv1") + && (!info.video + || info.frames != Some(frames) + || info.codecs.len() != 1 + || info.codecs[0] != "ffv1") { return Err(Error::new( "BackendFailed", @@ -1930,7 +1933,7 @@ mod tool_owner_tests { let mut measured = super::MediaInfo { width: Some(160), height: Some(90), - frames: None, + frames: Some(50), duration_num: 2, duration_den: 1, video: true, @@ -1951,6 +1954,8 @@ mod tool_owner_tests { measured.frames = Some(49); assert!(super::validate_render_media(&measured, &profile, &expected, 50).is_err()); measured.frames = None; + assert!(super::validate_render_media(&measured, &profile, &expected, 50).is_err()); + measured.frames = Some(50); measured.duration_num = 1; assert!(super::validate_render_media(&measured, &profile, &expected, 50).is_err()); measured.duration_num = 2; From 16efab38e0c814ff05958a07cda8af4fd1b304d9 Mon Sep 17 00:00:00 2001 From: Semwright integration Date: Sat, 10 Oct 2026 14:05:18 -0600 Subject: [PATCH 4/4] fix(mlt): run full frame verification as bounded cancellable Host tool job --- crates/driver-mlt-video/src/main.rs | 40 +++++++++++++++++++---------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/crates/driver-mlt-video/src/main.rs b/crates/driver-mlt-video/src/main.rs index 9015220fc..eceb3a6c3 100644 --- a/crates/driver-mlt-video/src/main.rs +++ b/crates/driver-mlt-video/src/main.rs @@ -519,19 +519,33 @@ impl MltVideoDriver { value: "--count-video-frames".into(), }); } - let output = context - .execute_runtime_tool_args( - "mlt-runner", - args, - Vec::new(), - if count_video_frames { - std::time::Duration::from_secs(150) - } else { - std::time::Duration::from_secs(30) - }, - None, - ) - .await?; + let output = if count_video_frames { + // Full frame decoding is bounded but may exceed 30 seconds for + // 36k FFV1 frames. Protocol v7 synchronous tools have a strict + // 30-second ceiling; use its *existing* Host-owned detached job + // with cancellation and reap-on-error semantics. Never weaken + // the protocol or run a consumer-side ffmpeg process. + let job = context + .start_runtime_tool_job_args( + "mlt-runner", + args, + Vec::new(), + std::time::Duration::from_secs(150), + None, + ) + .await?; + context.wait_runtime_tool_job(&job).await? + } else { + context + .execute_runtime_tool_args( + "mlt-runner", + args, + Vec::new(), + std::time::Duration::from_secs(30), + None, + ) + .await? + }; if output.exit_code != 0 { let detail = host_runner_failure(&output.stdout); return Err(Error::new(