74 lines
2.7 KiB
Markdown
74 lines
2.7 KiB
Markdown
# Seriatim Transcript Input
|
||
|
||
This document defines the JSON transcript accepted by the production Seriatim
|
||
input adapter. It is a source input, not a durable lane artifact. Configure the
|
||
input adapter through [Configuration](../config.md#production-module-keys).
|
||
|
||
## Contract Identity
|
||
|
||
| Property | Value |
|
||
| --- | --- |
|
||
| Consumer | Seriatim input adapter |
|
||
| Media type | `application/vnd.seriatim+json` |
|
||
| Source document kind | `transcript` |
|
||
| Source-unit kind | `transcript_segment` |
|
||
|
||
## Accepted Shape
|
||
|
||
The input is one JSON object containing `metadata` and a non-empty `segments`
|
||
array. This minimal document is valid:
|
||
|
||
```json
|
||
{
|
||
"metadata": {"id": "session-alpha"},
|
||
"segments": [
|
||
{
|
||
"id": 1,
|
||
"start": 0,
|
||
"end": 4,
|
||
"speaker": "Aria",
|
||
"text": "Aria casts Cure Wounds."
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
The maintained two-segment input is
|
||
[seriatim-minimal-transcript.json](../../examples/seriatim-minimal-transcript.json).
|
||
|
||
| Field | Required | Meaning and constraints |
|
||
| --- | --- | --- |
|
||
| `metadata` | Yes | JSON object. Its entries become source metadata; no particular metadata key is otherwise required. |
|
||
| `segments` | Yes | Non-empty array of segment objects, kept in input order. |
|
||
| `segments[].id` | Yes | Positive canonical decimal integer, supplied as a JSON number or string. IDs must be unique. |
|
||
| `segments[].start` | Yes | Finite, non-negative numeric value, supplied as a JSON number or string. |
|
||
| `segments[].end` | Yes | Finite, non-negative numeric value that is not earlier than `start`. |
|
||
| `segments[].speaker` | Yes | String that is non-empty after trimming. |
|
||
| `segments[].text` | Yes | String that is non-empty after trimming. Its original text is retained. |
|
||
|
||
Additional top-level and segment fields are ignored. A missing required field,
|
||
`null` in place of an object or array, malformed JSON, or more than one
|
||
top-level JSON value is rejected.
|
||
|
||
## Source Identity And References
|
||
|
||
The adapter chooses the source ID in this order:
|
||
|
||
1. a non-empty source ID supplied by the calling request;
|
||
2. non-empty string `metadata.id`;
|
||
3. non-empty string `metadata.source_id`;
|
||
4. `seriatim:` followed by the first 16 hexadecimal characters of the raw
|
||
input’s SHA-256 digest.
|
||
|
||
Each accepted segment becomes one source unit whose unit ID is `segments[].id`.
|
||
Its self-reference uses the derived source ID and the same segment ID for both
|
||
range endpoints. Artifact contracts use those segment IDs when they cite
|
||
transcript evidence.
|
||
|
||
## Compatibility
|
||
|
||
This adapter accepts only the shape described here. A broader Seriatim export
|
||
is usable only when it supplies this object, metadata, and segment shape with
|
||
the stated types and constraints. Unknown additional fields do not add
|
||
Notarius behavior.
|