Place prepared Takes on an independent Timeline with gaps and overlaps. Present picture, sound and captions through explicit Use rules while preserving source timing and project-authored styles.
Unify Companion bands, parameter ownership and source writeback in Studio. Migrate components, examples and authoring guidance, remove retired Speech/Semantic Track interfaces, and retain protocol identifiers at @1.
Validation: repository suite (786 tests; six sandbox-blocked tests passed on permitted rerun), 43 Studio tests after audit fixes, TypeScript, public declarations, four example-package builds, chat Source check and npm file inventory.
Rename the author frontend around Markup, replace PromptKit with graph-native Text templates, and keep video typography in its own package. Wire ordinary Text through explicit graph edges into model and visible consumers, refresh examples, locks, tests, and architecture documentation.
Every token, segment and anchor carried measured/derived/estimated, caption
regions and presentation units carried it forward, and the renderer wrote it out
as data-caption-quality and data-caption-basis. Nothing ever decided anything
with it.
Nothing could. When alignment cannot measure a token it interpolates by
character weight, and that interpolation is already the only timing available —
there is no alternative for a consumer to switch to, and an author told about it
can only regenerate, which is non-deterministic anyway.
The interpolation itself is unchanged; only the label is gone. The correspondence
field stays because temporalization actually branches on it.
The umbrella video-contracts package collapsed eight unrelated
vocabularies into one release unit. Public video communication now
lives in small, independently versioned contract packages: narrative,
media, program-space, speech, speech-evidence, semantic-map, visual-ir
and composition. Speech implementation packages are renamed for what
they do (speech-spine, speech-basis, speech-alignment), realization
folds into run, and hyperframes-render becomes render-hyperframes with
a renderer-neutral Visual IR spec. Every model package gains a direct
activation entry, and shared video test fixtures move to test-support.
Example package locks are regenerated for the decomposed closure; the
graph-check, live, echo-pro-aroll and bootstrap sources all compile
against the new package set.
The package holds Narrative, Media, ProgramSpace, Speech, SemanticTime,
Track, Composition and HyperFrames Visual IR contracts — all video
domain vocabulary. A domain-neutral name overstated its scope and
collided with the repository's own naming discipline. Example locks are
regenerated for the new package identity.
Also removes three empty untracked directories left from earlier
package drafts (provider-kit, prelude-video, video-fragments).
Narratage (narration + montage) is the project, framework, npm scope
(@narratage/*) and CLI command. SVML remains the name of its markup
language, so file suffixes (.svml/.svs/.svrun), source Headers and
svml.* wire format ids are intentionally unchanged. Example locks are
regenerated because package manifests participate in artifact digests.
The @0/@2/@4 numbers were rewrite-internal draft counters, not released
format versions. No external consumer or persisted data depends on them,
so the first public format of every id is @1. Negative-format tests use
@9 as the deliberately unknown version. Example package and runtime
locks are regenerated because format ids participate in digests.
Remove payload lineage coupling, load deployment adapters from locked packages, add explicit artifact lifecycle tooling, and keep image/media execution behind replaceable endpoints. Refresh the executable examples and architecture records to match the implemented boundaries.