2026-07-26 13:38:55 +00:00
|
|
|
|
# Seriatim Transcript Input
|
2026-07-03 21:18:24 +00:00
|
|
|
|
|
2026-07-26 13:38:55 +00:00
|
|
|
|
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).
|
2026-07-03 21:18:24 +00:00
|
|
|
|
|
2026-07-26 13:38:55 +00:00
|
|
|
|
## Contract Identity
|
2026-07-03 21:18:24 +00:00
|
|
|
|
|
2026-07-26 13:38:55 +00:00
|
|
|
|
| Property | Value |
|
|
|
|
|
|
| --- | --- |
|
|
|
|
|
|
| Consumer | Seriatim input adapter |
|
|
|
|
|
|
| Media type | `application/vnd.seriatim+json` |
|
|
|
|
|
|
| Source document kind | `transcript` |
|
|
|
|
|
|
| Source-unit kind | `transcript_segment` |
|
2026-07-03 21:18:24 +00:00
|
|
|
|
|
|
|
|
|
|
## Accepted Shape
|
|
|
|
|
|
|
2026-07-26 13:38:55 +00:00
|
|
|
|
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.
|