Expand description
The generated document model (Flow, Node, Prompt, …), emitted
from the schema by typify into OUT_DIR/flow_types.rs.
Node is an internally-tagged enum (#[serde(tag = "kind")]): the
build.rs schema normalization inlines the per-node oneOf branches
and rewrites the kind const to a single-valued enum so typify
discriminates on kind instead of emitting an #[serde(untagged)] enum
that would mis-deserialize (a menu as a greeting).
Modules§
Structs§
- Exits
- Wired exits: exit name → target node id. Which names are valid is a property of the node’s kind and is checked by the validator, not by this schema.
- Flow
- The WaveKat call-flow (“Receptionist”) document, schema_version 2. Version 2 is version 1 plus the
bookcomponent (appointment booking over the phone); every version-1 document is a valid version-2 document once itsschema_versionis bumped, and nothing else changed. This file is the single source of truth for the document SHAPE, and — being the newest version — it is also the file both consumers generate their model types from, so one model covers every supported version. Semantic rules that a JSON Schema cannot express (graph reachability, exit-set exactness, hours/timezone math, DTMF digit validity, prompt length, per-component numeric bounds, and which components a given schema_version may use) are NOT encoded here — they live in each language’s validator and are pinned by the shared conformance corpus. Unknown fields are permitted structurally, matching both implementations (Rust serde ignores them; the TS parser surfaces a non-blocking warning). - Hours
Exception - A single-date override of the weekly schedule (holiday / special hours).
- Time
Range - One open window: open–close as “HH:MM” (24-hour). Ordering and overnight rules are enforced by the validator.
- Weekly
Schedule - Open ranges per weekday; a missing or empty day means closed all day.
Enums§
- Message
Tone - The cue a message node plays between its prompt and the start of recording.
- Node
- One node: a component (kind + its config) plus its wired exits. An internally-tagged union on
kind. - Prompt
- What a component speaks: TTS text (a bare string) or a reference to a pre-rendered audio asset shipped alongside the flow.