51 lines
2.3 KiB
Markdown
51 lines
2.3 KiB
Markdown
# Transcript and Glossary Input Files
|
|
|
|
This document owns accepted input formats. Use the [CLI reference](../cli.md) for
|
|
invocation and error exit semantics, [operations](../operations.md) for artifact
|
|
handling, and [output files](output-files.md) for corrected-transcript serialization.
|
|
|
|
## Transcript JSON Contract
|
|
|
|
Accepted top-level shapes are an array of segments or an object containing a
|
|
`segments` array. The array must contain at least one segment. Unknown object
|
|
fields are ignored by the current parser; an input envelope does not require a
|
|
schema/version marker.
|
|
|
|
| Segment field | Type and validation |
|
|
| --- | --- |
|
|
| `id` | Optional integer (or null). Supplied IDs must be unique; missing IDs are accepted. |
|
|
| `speaker` | Non-empty string |
|
|
| `start`, `end` | Numeric seconds, finite and non-negative; end must be at least start |
|
|
| `text` | Non-empty string |
|
|
| `categories` | Optional array of non-empty strings |
|
|
|
|
Supply explicit start and end times for meaningful timing. The current decoder
|
|
uses zero for missing or null timestamps rather than enforcing their presence.
|
|
String validation checks empty values, not whitespace trimming. Normalization can
|
|
merge segments and reassign IDs, so source IDs need not match output IDs.
|
|
|
|
The [tiny transcript](../../examples/tiny-transcript.json) is a complete copyable
|
|
input. Invalid JSON, unsupported top-level shapes, empty transcripts, invalid field
|
|
types, duplicate supplied IDs, and the validation failures above are rejected.
|
|
|
|
## Glossary YAML Contract
|
|
|
|
The top-level object contains a `glossary` list with at least one entry.
|
|
|
|
| Entry field | Type and validation |
|
|
| --- | --- |
|
|
| `name` | Non-empty string |
|
|
| `category` | Non-empty string |
|
|
| `summary` | Non-empty string |
|
|
| `aliases` | Optional list of non-empty strings |
|
|
| `plural` | Optional string |
|
|
|
|
The parser checks empty strings without trimming them. Unknown YAML fields are
|
|
ignored by the glossary parser, unlike the stricter
|
|
[configuration-file schema](../config.md#loading-and-precedence).
|
|
|
|
The [tiny glossary](../../examples/tiny-glossary.yaml) is a complete copyable input.
|
|
Malformed YAML, an empty/missing glossary, invalid shapes, missing required text,
|
|
and empty aliases are rejected. These formats describe input acceptance, not
|
|
additional vocabulary restrictions.
|