26 lines
1.3 KiB
TypeScript
26 lines
1.3 KiB
TypeScript
/**
|
|
* `lib/choreography` — the shared orchestration/spec modules.
|
|
*
|
|
* The single source of truth for the semantics a faithful classroom-video
|
|
* exporter needs from playback, so neither the app runtime nor the exporter
|
|
* re-implements (and silently drifts from) the other:
|
|
*
|
|
* - **Timing** — playback timing constants + the deterministic no-audio speech
|
|
* estimate ({@link estimateSpeechDurationMs}).
|
|
* - **Cursor** — {@link resolvePlaybackCursor}, the scene/action walk.
|
|
* - **Timeline** — {@link resolveActionTimeline}, the index→time expansion.
|
|
* - **Descriptors** — versioned, declarative animation descriptors
|
|
* ({@link DESCRIPTORS}, e.g. `spotlight.v1`) + their zod schema.
|
|
*
|
|
* Kept in `lib/` (not a package) because these semantics co-evolve with the
|
|
* playback engine. Purity is machine-enforced: these modules import only
|
|
* `@openmaic/dsl` (types + the fire-and-forget partition), `zod` (descriptor
|
|
* schema), and pure helpers — no React / DOM / GSAP / framer-motion / render
|
|
* backend, so the exporter can interpret them in a pure Node environment. The
|
|
* eslint `@/`-boundary block on `lib/choreography/**` keeps host-app paths out.
|
|
*/
|
|
export * from './timing';
|
|
export * from './cursor';
|
|
export * from './timeline';
|
|
export * from './descriptors/index';
|