Appearance
story-context
SOM 1.0.0 180 fieldsThe complete state of a story at one moment, published as a snapshot and never as a delta. (SOM 1.0 conformance §6)
| Message types | story.context |
| Typically published by | The story's owner, the one system that publishes its snapshots: typically a newsroom computer system or planning system. (SOM Managed Bus) |
| Schema | https://storyobjectmodel.com/schema/1.0/story-context.schema.json (source at 7297fef) |
| Defined by SOM | 66 of 180 fields |
The story.context payload: the complete state of a story at a moment in time, published as a snapshot and never as a delta. Shape settled across the v0.3.1 and v0.3.2 windows and locked at SOM 1.0. Design record: (1) asset_type gains TRANSCRIPT (locked v0.3.1 29 Jun — carried here because the 30 Jun re-cut omitted it) plus the promoted generative outputs SUMMARY/SOCIAL_POST/ARTICLE/ANALYSIS (AI-outputs refactor, principle ratified 29 Jun; registry direction — governed-but-extensible); (2) asset.provenance — authorship-general provenance object (author HUMAN/MODEL, never AI-keyed); (3) assertions[] — claims-about-content (FACT_CHECK/DETECTION/MATCH) with target on the audit target set plus STORY (audit-set convergence proposed; the assertion set is deliberately the wider of the two until it lands) and a structured review state; ai_enrichments[] is hard-rejected (narrowed to assertions[]; generative outputs are Assets — SOM-048 migration is breaking, needs the disambiguation rule); (4) story_type gains ORPHAN (minimal shell story holding an unmatched UGC clip; trivially filterable via the story_type predicate; ships at 1.0; residual debate is recorded in spec/open-register.md); (5) editorial_gate.blocks[] contract restored ({kind ASSET|PHASE, ref}; bare string DEPRECATED — element-level-hold reply 1 Jul). som_version carries the pack version (1.0.0). (6) tags[] — subject-matter tagging: ordered, scheme-qualified (newsroom / iptc-mediatopic / com.{vendor}.{name}), additive and optional. Added because every other axis here carries lifecycle, priority, compliance or provenance and none of them say what a story is about, so a skill trigger policy had no field to resolve on and was falling back to substring matching on headline text. (SOM 1.0 schema)
Required: story_id, slug, headline, story_type, sequence_number, updated_at
Unknown fields: refused. The payload lists every field it accepts.
Rules across fields:
- When
story_typeisACTIVE,lifecycleis required. Otherwiselifecyclemust be absent.
Fields
| Field | Type | Defined by SOM | |
|---|---|---|---|
story_id | required | string | yes |
slug | required | string | yes |
headline | required | string | yes |
story_type | required | string | yes |
tags | optional | array of story_tag | yes |
lifecycle | optional | lifecycle | yes |
sequence_number | required | integer | yes |
updated_at | required | string (date-time) | not yet |
newsroom_id | optional | string | yes |
story_owner | optional | string or object | yes |
priority | optional | object | yes |
priority.level | required | string | not yet |
priority.reason | optional | string | not yet |
priority.escalated_by | optional | string | not yet |
priority.escalated_at | optional | string (date-time) | not yet |
premise | optional | object | yes |
premise.expected_outcome | optional | string | not yet |
premise.confidence | optional | string | not yet |
premise.premise_changed | optional | boolean | not yet |
premise.previous_outcome | optional | string | not yet |
premise.actual_outcome | optional | string | not yet |
premise.affected_assets | optional | array of string | not yet |
premise.change_detected_at | optional | string (date-time) | not yet |
premise.change_detected_by | optional | string | not yet |
compliance | optional | array of compliance_flag | yes |
editorial_gates | optional | array of editorial_gate | yes |
story_meaning | optional | object | yes |
story_meaning.who | optional | string | not yet |
story_meaning.what | optional | string | not yet |
story_meaning.when | optional | string | not yet |
story_meaning.where | optional | string | not yet |
story_meaning.why | optional | string | not yet |
story_meaning.how | optional | string | not yet |
story_meaning.summary | optional | string | not yet |
story_meaning.confidence | optional | number | not yet |
story_meaning.provenance_refs | optional | array of string | not yet |
government_approval | optional | object | yes |
government_approval.status | required | string | not yet |
government_approval.jurisdiction | optional | string | not yet |
editorial_source | optional | array of editorial_source_entry | yes |
assets | optional | array of asset | yes |
ai_enrichments | refused | — | yes |
skills_config | optional | skills_config | yes |
content_refs | optional | array of content_ref | yes |
relations | optional | array of relation | yes |
collaboration | optional | object | yes |
collaboration.editing_version | optional | integer | yes |
collaboration.active_editors | optional | array | not yet |
collaboration.lock_status | optional | string | yes |
extensions | optional | object | yes |
instances | refused | — | yes |
broadcaster_id | refused | — | yes |
sources | refused | — | yes |
content_ref | refused | — | yes |
assertions | optional | array of assertion | yes |
story_id
RequiredType string
Example hurricane-2026-0911 (from examples/story-context/hurricane-beat6-envelope.json)
- The SOM glossary, story_id (CONFIRMED): Primary identifier for a story.
Checked by the bus story-context.required · story-context.type
slug
RequiredType string
Example HURRICANE-LANDFALL (from examples/story-context/hurricane-beat6-envelope.json)
- The SOM glossary, Slug (CONFIRMED): Short human-readable story identifier (max 128 chars).
- In 1.0: The 1.0 schema sets no maximum length on
slug. (SOM 1.0 schema)
- In 1.0: The 1.0 schema sets no maximum length on
Checked by the bus story-context.required · story-context.type
headline
RequiredType string
Example Hurricane makes Cat 4 landfall; 40,000 outages confirmed (from examples/story-context/hurricane-beat6-envelope.json)
- The SOM glossary, headline (CONFIRMED): Human-readable story headline on the story context.
Checked by the bus story-context.required · story-context.type
story_type
RequiredType string · Allowed values PLANNED · ACTIVE · KILLED · SPIKED · ARCHIVED · ORPHAN
Example ACTIVE (from examples/story-context/hurricane-beat6-envelope.json)
- The 1.0 schema: “ORPHAN (v0.3.2): a minimal shell story minted to hold a clip that arrived with no story (UGC / found media) until a proposed match is confirmed. On confirm the clip MOVES to the real story (same asset_id, original timestamps; the association change is recorded on som.system.audit against the asset — NOTE the locked action vocabulary CLEARED/SUPPRESSED/WITHHELD/OVERRIDDEN cannot yet express an association, so an ASSOCIATED action is proposed to make this record expressible; until it lands the move is recorded by convention, not by a defined action) and the shell ALWAYS retires to ARCHIVED — the reason it closed (resolved onto a story, or rejected/discarded) lives in the audit trail, so the terminal story_type carries no distinction; never deleted. Consumers exclude orphans with the same single story_type predicate used for KILLED/SPIKED.” (SOM 1.0 schema)
- The SOM glossary, story_type (CONFIRMED): Editorial state of a story.
Checked by the bus story_type.left_terminal · story-context.required · story-context.type · story-context.enum
tags
OptionalType array of story_tag · Items no repeats
- The 1.0 schema: “Subject-matter tags: what the story is about. Order is significant — the first entry is the primary tag, and a trigger policy whose map matches more than one entry resolves on the earliest match, so a story that is genuinely both sport and politics routes deterministically instead of ambiguously. Optional and additive; an absent array means untagged, never a default desk.” (SOM 1.0 schema)
Checked by the bus story-context.type · story-context.uniqueItems
lifecycle
OptionalType lifecycle
- The SOM glossary, Lifecycle (CONFIRMED): Current state of a story in its editorial journey.
Checked by the bus story-context.type
sequence_number
RequiredType integer · Range 0 to …
Example 7 (from examples/story-context/hurricane-beat6-envelope.json)
- The SOM glossary, sequence_number (CONFIRMED): Monotonically increasing integer on story context for ordering and deduplication.
Checked by the bus sequence_number.not_increasing · sequence_number.gap · story-context.required · story-context.type · story-context.minimum
updated_at
RequiredType string (date-time)
Example 2026-09-11T16:41:00Z (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus updated_at.backwards · story-context.required · story-context.type · story-context.format.date-time
newsroom_id
OptionalType string
Example nbcu-nyc (from examples/story-context/hurricane-beat6-envelope.json)
- The 1.0 schema: “Optional at 1.0 — derive from skills_config.newsroom if absent (decision 12). Making it required would be a 2.0 change; see spec/compatibility-policy.md.” (SOM 1.0 schema)
- The SOM glossary, newsroom_id (CONFIRMED): Replacement for broadcaster_id; covers wire services, digital-only newsrooms, agencies.
Checked by the bus story-context.type
story_owner
OptionalType string or object
- The 1.0 schema: “System/entity with authoritative control over the story” (SOM 1.0 schema)
- The SOM glossary, Story Owner (CONFIRMED): The system/entity with current authoritative editorial control of a story (story_owner).
Checked by the bus story-context.type
priority
OptionalType object · Unknown fields refused
- The SOM glossary, Priority (CONFIRMED): Versioned story context section indicating editorial urgency.
Checked by the bus story-context.type · story-context.additionalProperties
priority.level
RequiredType string · Allowed values ROUTINE · STANDARD · HIGH · URGENT · FLASH
Example URGENT (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type · story-context.enum
priority.reason
OptionalType string
Example landfall; outage figure confirmed (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
priority.escalated_by
OptionalType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
priority.escalated_at
OptionalType string (date-time)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type · story-context.format.date-time
premise
OptionalType object · Unknown fields refused
- The SOM glossary, Premise (CONFIRMED): Versioned story-context section tracking the editorial hypothesis AND its verdict.
Checked by the bus story-context.type · story-context.additionalProperties
premise.expected_outcome
OptionalType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
premise.confidence
OptionalType string · Allowed values LOW · MEDIUM · HIGH
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type · story-context.enum
premise.premise_changed
OptionalType boolean
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
premise.previous_outcome
OptionalType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
premise.actual_outcome
OptionalType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
premise.affected_assets
OptionalType array of string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
premise.change_detected_at
OptionalType string (date-time)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type · story-context.format.date-time
premise.change_detected_by
OptionalType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
compliance
OptionalType array of compliance_flag
- The SOM glossary, Compliance Flag (CONFIRMED): A regulatory or standards flag raised against a story or asset.
Checked by the bus story-context.type
editorial_gates
OptionalType array of editorial_gate
- The SOM glossary, Editorial Gate (CONFIRMED): An approval checkpoint in the story workflow.
Checked by the bus story-context.type
story_meaning
OptionalType object · Unknown fields refused
- The 1.0 schema: “Structured 5W1H kernel (decision 14); fields token-capped ≤280 chars, summary ≤600” (SOM 1.0 schema)
- The SOM glossary, story_meaning (CONFIRMED): AI-optimized compact summary structured as 5W1H kernel.
Checked by the bus story-context.type · story-context.additionalProperties
story_meaning.who
OptionalType string · Length at most 280 characters
Example Gulf Coast residents, NHC, FEMA (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type · story-context.maxLength
story_meaning.what
OptionalType string · Length at most 280 characters
Example Hurricane Cat 4 landfall; 40,000 outages confirmed (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type · story-context.maxLength
story_meaning.when
OptionalType string · Length at most 280 characters
Example 2026-09-11 (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type · story-context.maxLength
story_meaning.where
OptionalType string · Length at most 280 characters
Example Gulf Coast (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type · story-context.maxLength
story_meaning.why
OptionalType string · Length at most 280 characters
Example NHC upgraded the system to Cat 4 following landfall (from examples/hurricane-run/hurricane-04.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type · story-context.maxLength
story_meaning.how
OptionalType string · Length at most 280 characters
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type · story-context.maxLength
story_meaning.summary
OptionalType string · Length at most 600 characters
Example Cat 4 landfall on the Gulf Coast; FEMA confirms 40,000 residences without power. (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type · story-context.maxLength
story_meaning.confidence
OptionalType number · Range 0 to 1
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type · story-context.minimum · story-context.maximum
story_meaning.provenance_refs
OptionalType array of string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
government_approval
OptionalType object · Unknown fields refused
- The 1.0 schema: “Publication gate (decision 15) — executor MUST NOT publish while status blocks” (SOM 1.0 schema)
- The SOM glossary, government_approval (CONFIRMED): Publication gate for jurisdictions requiring government approval.
Checked by the bus story-context.type · story-context.additionalProperties
government_approval.status
RequiredType string · Allowed values NOT_REQUIRED · REQUESTED · UNDER_REVIEW · APPROVED · RETURNED_FOR_REVISION · REJECTED
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type · story-context.enum
government_approval.jurisdiction
OptionalType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
editorial_source
OptionalType array of editorial_source_entry
- The 1.0 schema: “Renamed from sources[] (second leg of the source disambiguation)” (SOM 1.0 schema)
- The SOM glossary, editorial_source (CONFIRMED): Proposed rename for editorial source references inside story context (sources[]).
- In 1.0: Ships in 1.0 as
editorial_source[];sourcesis refused. (SOM 1.0 schema)
- In 1.0: Ships in 1.0 as
Checked by the bus story-context.type
assets
OptionalType array of asset
- The SOM glossary, Asset (CONFIRMED): A discrete piece of media or editorial work classified by editorial position: primary, secondary, or tertiary.
Checked by the bus snapshot.assets_dropped · story-context.type
ai_enrichments
RefusedType none: publishing it is refused
- The SOM glossary, AI Enrichment (CONFIRMED): A machine-generated annotation on a story context (
ai_enrichments[]).- In 1.0: Removed before 1.0:
ai_enrichmentsis refused. AI outputs are assets with authorship provenance, and claims areassertions[]. (SOM 1.0 migration note)
- In 1.0: Removed before 1.0:
Checked by the bus story-context.false_schema
skills_config
OptionalType skills_config
- The SOM glossary, skills_config (CONFIRMED): Versioned story context section defining active skills.
Checked by the bus story-context.type
content_refs
OptionalType array of content_ref
- The SOM glossary, content_refs[] (PROPOSED): Reference to externally-hosted content.
- In 1.0: Ships in the 1.0 schema. (SOM 1.0 schema)
Checked by the bus story-context.type
relations
OptionalType array of relation
- The SOM glossary, Relation (CONFIRMED): Link between two stories (relations[]).
Checked by the bus story-context.type
collaboration
OptionalType object
- The SOM glossary, Collaboration (CONFIRMED): Versioned story context section tracking active editors and lock state.
Checked by the bus story-context.type
collaboration.editing_version
OptionalType integer
- The 1.0 schema: “Renamed from collaboration.version” (SOM 1.0 schema)
Checked by the bus story-context.type
collaboration.active_editors
OptionalType array
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
collaboration.lock_status
OptionalType string
- The SOM glossary, lock_status (CONFIRMED): Whether a story is locked for editing.
Checked by the bus story-context.type
extensions
OptionalType object · Keys match ^com\.[a-z0-9-]+\. · Unknown fields refused
- Vendor fields, namespaced by reverse domain (
com.<vendor>.). Consumers must ignore extensions they don't recognise and must not reject a message for carrying them. (SOM 1.0 conformance §5)
Checked by the bus story-context.type · story-context.additionalProperties
instances
RefusedType none: publishing it is refused
- The SOM glossary, instances[] (DEPRECATED): The instances[] array in v0.2.
Checked by the bus story-context.false_schema
broadcaster_id
RefusedType none: publishing it is refused
- The SOM glossary, broadcaster_id (DEPRECATED): Identifier for the organisation owning a story.
Checked by the bus story-context.false_schema
sources
RefusedType none: publishing it is refused
- Refused: SOM 1.0 forbids this field, and a message carrying it fails validation. (SOM 1.0 schema)
Checked by the bus story-context.false_schema
content_ref
RefusedType none: publishing it is refused
- The SOM glossary, content_ref (DEPRECATED): Legacy singular URI reference to externally-hosted content.
Checked by the bus story-context.false_schema
assertions
OptionalType array of assertion
- The SOM glossary, assertions[] (PROPOSED): The record the
ai_enrichments[]construct narrows to: a claim-about-a-thing, renamed off theai_prefix (a human fact-checker produces verdicts too).- In 1.0: Ships in the 1.0 schema. (SOM 1.0 schema)
Checked by the bus story-context.type
Shape: lifecycle
Used by lifecycle.
Present ONLY when story_type: ACTIVE (decision 19) (SOM 1.0 schema)
Required: phase, phase_entered_at
Unknown fields: refused. The shape lists every field it accepts.
| Field | Type | Defined by SOM | |
|---|---|---|---|
phase | required | string | not yet |
phase_entered_at | required | string (date-time) | not yet |
previous_phase | optional | string | not yet |
phase_owner | optional | object | yes |
phase_owner.user_id | optional | string | not yet |
phase_owner.display_name | optional | string | not yet |
phase_owner.role | optional | string | not yet |
phase
RequiredType string · Allowed values DEVELOPING · READY_TO_AIR · BREAKING · PUBLISHED
Example BREAKING (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type · story-context.enum
phase_entered_at
RequiredType string (date-time)
Example 2026-09-11T14:00:00Z (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type · story-context.format.date-time
previous_phase
OptionalType string · Allowed values DEVELOPING · READY_TO_AIR · BREAKING · PUBLISHED
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type · story-context.enum
phase_owner
OptionalType object · Unknown fields refused
- The SOM glossary, Phase Owner (CONFIRMED): Structured object within lifecycle identifying who/what system is responsible for the current phase.
Checked by the bus story-context.type · story-context.additionalProperties
phase_owner.user_id
OptionalType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
phase_owner.display_name
OptionalType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
phase_owner.role
OptionalType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
Shape: compliance_flag
Used by compliance.
Required: flag_id, type, severity, detail, raised_by, raised_at, status
Unknown fields: refused. The shape lists every field it accepts.
| Field | Type | Defined by SOM | |
|---|---|---|---|
flag_id | required | string | not yet |
type | required | string | not yet |
severity | required | string | not yet |
detail | required | string | not yet |
jurisdiction | optional | string | not yet |
regulation_ref | optional | string | not yet |
raised_by | required | string | not yet |
raised_at | required | string (date-time) | not yet |
status | required | string | not yet |
media_range | optional | object | yes |
media_range.source | optional | string | yes |
media_range.locator | optional | object | not yet |
media_range.locator.store | required | string | not yet |
media_range.locator.ref | required | string | not yet |
media_range.time_range | optional | timerange or array of timerange | yes |
flag_id
RequiredType string
Example flag-outage-unconfirmed (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type
type
RequiredType string
Example EDITORIAL_REVIEW (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type
severity
RequiredType string · Allowed values LOW · MEDIUM · HIGH · CRITICAL
Example HIGH (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type · story-context.enum
detail
RequiredType string
Example Outage figure unconfirmed pending authority statement (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type
jurisdiction
OptionalType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
regulation_ref
OptionalType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
raised_by
RequiredType string
Example standards (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type
raised_at
RequiredType string (date-time)
Example 2026-09-11T15:00:00Z (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type · story-context.format.date-time
status
RequiredType string · Allowed values ACTIVE · RESOLVED · WAIVED
Example RESOLVED (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type · story-context.enum
media_range
OptionalType object · Carries at least one of source + time_range or locator + time_range · Unknown fields refused
- The 1.0 schema: “CONFIRMED (v0.3.1, Source re-key 29 Jun): flags a restricted stretch of the asset's media by Source URI + time range (was flow_id). The what/why/type live on the compliance flag. NOTE: a re-edit mints new TAMS media, so this pin does not automatically survive re-editing; the fuller structured-restriction shape is settled after the lock.” (SOM 1.0 schema)
- The SOM glossary, media_range (CONFIRMED): Object on a compliance flag (
compliance[].media_range) that pins a restriction to a specific stretch of media (sub-asset compliance).
Checked by the bus story-context.type · story-context.additionalProperties
media_range.source
OptionalType string · Pattern ^tams://[^/]+/.+
- The 1.0 schema: “Fully-qualified TAMS Source URI — tams://store/id.” (SOM 1.0 schema)
Checked by the bus story-context.type · story-context.pattern
media_range.locator
OptionalType object · Unknown fields refused
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type · story-context.additionalProperties
media_range.locator.store
RequiredType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type
media_range.locator.ref
RequiredType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type
media_range.time_range
OptionalType timerange or array of timerange
- The 1.0 schema: “TAMS time range (or list) for the restricted stretch.” (SOM 1.0 schema)
Checked by the bus story-context.type
Shape: editorial_gate
Used by editorial_gates.
Required: gate_id, gate_type, status
Unknown fields: refused. The shape lists every field it accepts.
| Field | Type | Defined by SOM | |
|---|---|---|---|
gate_id | required | string | not yet |
gate_type | required | string | not yet |
status | required | string | not yet |
required_by_skill | optional | string | not yet |
gate_rule_id | optional | string | not yet |
resolution_event_type | optional | string | not yet |
assigned_to | optional | string | not yet |
blocks | optional | array of object or string | yes |
blocks.kind | required | string | not yet |
blocks.ref | required | string | not yet |
gate_id
RequiredType string
Example gate-outage-broadcast (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type
gate_type
RequiredType string
Example STANDARDS_APPROVAL (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type
status
RequiredType string · Allowed values PENDING · APPROVED · REJECTED
Example APPROVED (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type · story-context.enum
required_by_skill
OptionalType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
gate_rule_id
OptionalType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
resolution_event_type
OptionalType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
assigned_to
OptionalType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
blocks
OptionalType array of object or string · Unknown fields refused
- The 1.0 schema: “Contract restored (v0.3.2; was a bare string array — dropped wording). Names the things this gate holds: {kind ASSET, ref asset_id} or {kind PHASE, ref lifecycle-phase token}, reusing the UPPER target-kind vocabulary. Bare strings DEPRECATED (accepted for migration only).” (SOM 1.0 schema)
Checked by the bus story-context.type · story-context.additionalProperties
blocks.kind
RequiredType string · Allowed values ASSET · PHASE
Example ASSET (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type · story-context.enum
blocks.ref
RequiredType string
Example asset-outage-lower-third (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type
Shape: editorial_source_entry
Used by editorial_source.
Required: source_id, source_type, provider, credibility, received_at
Unknown fields: refused. The shape lists every field it accepts.
| Field | Type | Defined by SOM | |
|---|---|---|---|
source_id | required | string | not yet |
source_type | required | string | not yet |
provider | required | string | not yet |
credibility | required | string | yes |
received_at | required | string (date-time) | not yet |
content_hash | optional | string | not yet |
source_id
RequiredType string
Example src-ap-wire (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type
source_type
RequiredType string · Allowed values WIRE · OFFICIAL · FIELD_CREW · POOL_FEED · GOVERNMENT · INTERNAL · PRESS_RELEASE · SCANNER · USER_GENERATED · SOCIAL · ARCHIVE · or a value matching ^x-[a-z0-9_]+$
Example WIRE (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type · story-context.enum · story-context.pattern
provider
RequiredType string
Example AP (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type
credibility
RequiredType string · Allowed values TRUSTED · VERIFIED · ENDORSED · UNVERIFIED
Example VERIFIED (from examples/story-context/hurricane-beat6-envelope.json)
- The SOM glossary, credibility (CONFIRMED): Enum recording the trust standing of a source or claim.
Checked by the bus story-context.required · story-context.type · story-context.enum
received_at
RequiredType string (date-time)
Example 2026-09-11T13:04:00Z (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type · story-context.format.date-time
content_hash
OptionalType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
Shape: asset
Used by assets.
Required: asset_id, asset_type, status
Unknown fields: refused. The shape lists every field it accepts.
| Field | Type | Defined by SOM | |
|---|---|---|---|
asset_id | required | string | not yet |
asset_type | required | string | yes |
status | required | string | yes |
evidential_position | optional | string | yes |
acquisition_state | optional | string | yes |
derived_from | optional | array of string | yes |
produced_by | optional | string | yes |
usage | optional | array of object | yes |
usage.link_id | required | string | not yet |
usage.destination_id | required | string | not yet |
usage.state | required | string | not yet |
invalidated_by | optional | string | not yet |
standards_clearance | optional | object | yes |
standards_clearance.status | optional | string | not yet |
standards_clearance.blocked_by | optional | array of string | not yet |
standards_clearance.last_reviewed | optional | string (date-time) | not yet |
delivery_spec | optional | object | yes |
delivery_spec.format | optional | string | not yet |
delivery_spec.resolution | optional | string | not yet |
delivery_spec.frame_rate | optional | number | not yet |
media_refs | optional | array of object | yes |
media_refs.source | optional | string | yes |
media_refs.locator | optional | object | yes |
media_refs.locator.store | required | string | not yet |
media_refs.locator.ref | required | string | not yet |
media_refs.label | optional | string | not yet |
media_refs.time_range | optional | timerange or array of timerange | yes |
authenticity_credential | optional | object | yes |
authenticity_credential.present | required | boolean | not yet |
authenticity_credential.standard | optional | string | not yet |
authenticity_credential.claim | optional | string | not yet |
authenticity_credential.validated_by | optional | string | not yet |
framing_treatment | optional | string | yes |
provenance | optional | authorship_provenance | yes |
asset_id
RequiredType string
Example asset-presser-feed (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type
asset_type
RequiredType string · Allowed values VIDEO · AUDIO · GRAPHIC · STILL · CG · SCRIPT · PROMPTER · LOWER_THIRD · FULL_FRAME · MAP · SOCIAL_CARD · TRANSCRIPT · SUMMARY · SOCIAL_POST · ARTICLE · ANALYSIS · CUSTOM · or a value matching ^x-[a-z0-9_]+$
Example VIDEO (from examples/story-context/hurricane-beat6-envelope.json)
- The 1.0 schema: “TRANSCRIPT locked at v0.3.1 (29 Jun; the 30 Jun re-cut omitted it — carried here). SUMMARY/SOCIAL_POST/ARTICLE/ANALYSIS promoted from enrichment_type at v0.3.2 (AI-outputs refactor; the Telling test: publishes → needs a Telling → is an Asset). PROMPTER duplication resolved — it now lives here only. Direction: governed-but-extensible registry (same model as Platform / framing_treatment); vendor values keep the x- prefix.” (SOM 1.0 schema)
- The SOM glossary, asset_type (CONFIRMED): Governed enum categorising the media kind of an asset.
- The SOM glossary, TRANSCRIPT (PROPOSED): A transcript is a type of Asset in its own right (a value of
asset_type), added 29 June and intended to lock 30 June.- In 1.0:
TRANSCRIPTis anasset_typevalue in the 1.0 schema. (SOM 1.0 schema)
- In 1.0:
Checked by the bus asset.type_changed · story-context.required · story-context.type · story-context.enum · story-context.pattern
status
RequiredType string · Allowed values READY · IN_PRODUCTION · PREPARED · INVALIDATED
Example READY (from examples/story-context/hurricane-beat6-envelope.json)
- The 1.0 schema: “Editorial-state only (decision 16). LIVE/AIRED are DERIVED from the Telling, never stored here Distinct from acquisition_state, which is primary-assets-only.” (SOM 1.0 schema)
Checked by the bus story-context.required · story-context.type · story-context.enum
evidential_position
OptionalType string · Allowed values PRIMARY · SECONDARY · TERTIARY
Example PRIMARY (from examples/story-context/hurricane-beat6-envelope.json)
- The 1.0 schema: “Voice-count criterion (decision 22); single-reporter package defaults TERTIARY” (SOM 1.0 schema)
- The SOM glossary, evidential_position (CONFIRMED): Enum on Asset classifying evidential standing: PRIMARY, SECONDARY, TERTIARY. Settled criterion (WG decision 22): PRIMARY = raw material, no journalist; SECONDARY = a live relay OR a single journalist account (one voice); TERTIARY = a composed piece woven from more than one voice.
Checked by the bus story-context.type · story-context.enum
acquisition_state
OptionalType string · Allowed values CAPTURING · CAPTURED
Example CAPTURED (from examples/story-context/hurricane-beat6-envelope.json)
- The 1.0 schema: “Primary assets only; REOPENED is an event, not a stored value (decision 16)” (SOM 1.0 schema)
- The SOM glossary, acquisition_state (CONFIRMED): Enum on a primary-source asset tracking capture progress, split out from asset.status.
- The SOM glossary, Captured (flag) / CAPTURED (PROPOSED): acquisition_state value indicating primary-source material has been acquired and fixed.
- The SOM glossary, In-progress (flag) / CAPTURING (PROPOSED): acquisition_state value indicating primary-source material is still being acquired.
Checked by the bus story-context.type · story-context.enum
derived_from
OptionalType array of string
Example asset-presser-feed (from examples/story-context/hurricane-beat6-envelope.json)
- The 1.0 schema: “EDITORIAL lineage only; computational/format relationships belong in delivery_spec” (SOM 1.0 schema)
- The SOM glossary, derived_from (PROPOSED): Editorial child-to-parent lineage link (a journalist made this from that).
- In 1.0: Ships in the 1.0 schema, on assets. (SOM 1.0 schema)
Checked by the bus story-context.type
produced_by
OptionalType string
- The SOM glossary, produced_by (PROPOSED): Proposed field distinguishing human authorship from Skill authorship on tellings/secondary sources.
- In 1.0: Ships in the 1.0 schema, on assets. (SOM 1.0 schema)
Checked by the bus story-context.type
usage
OptionalType array of object · Unknown fields refused
- The 1.0 schema: “Asset-side back-edge index (decision 3); committed-only, fail-closed modify-gate; maintenance semantics per §5” (SOM 1.0 schema)
- The SOM glossary, usage[] (CONFIRMED): Thin Asset-side index of where an asset is used: entries { link_id, destination_id, state }. Holds the committed (pre-Telling) state only.
Checked by the bus story-context.type · story-context.additionalProperties
usage.link_id
RequiredType string
Example link-hurricane-broadcast (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type
usage.destination_id
RequiredType string
Example dest-one-bulletin (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type
usage.state
RequiredType string · Fixed value committed
Example committed (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type · story-context.const
invalidated_by
OptionalType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
standards_clearance
OptionalType object · Unknown fields refused
- The SOM glossary, standards_clearance (CONFIRMED): Per-asset clearance object: status CLEARED / BLOCKED / PENDING, plus blocked_by[] and last_reviewed.
Checked by the bus story-context.type · story-context.additionalProperties
standards_clearance.status
OptionalType string · Allowed values CLEARED · BLOCKED · PENDING
Example CLEARED (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type · story-context.enum
standards_clearance.blocked_by
OptionalType array of string
Example flag-outage-unconfirmed (from examples/hurricane-run/hurricane-06.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
standards_clearance.last_reviewed
OptionalType string (date-time)
Example 2026-09-11T16:40:00Z (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type · story-context.format.date-time
delivery_spec
OptionalType object
- The SOM glossary, delivery_spec (CONFIRMED): Technical delivery requirements for an asset, nested within the asset object.
Checked by the bus story-context.type
delivery_spec.format
OptionalType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
delivery_spec.resolution
OptionalType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
delivery_spec.frame_rate
OptionalType number
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
media_refs
OptionalType array of object · Carries at least one of source or locator · Unknown fields refused
- The 1.0 schema: “CONFIRMED (v0.3.1, Source re-key 29 Jun; lazy-consensus window to 1 Jul): the media_source leg. TAMS media referenced by a fully-qualified Source URI (tams://store/id) + optional time range(s); non-TAMS via locator. One of source/locator required. flow_id removed — SOM references Source + time, not Flow.” (SOM 1.0 schema)
- The SOM glossary, media_refs[] (CONFIRMED): Array on the asset carrying the media reference (the TAMS media-source leg).
- The SOM glossary, media_source (CONFIRMED): The TAMS media-origination concept (a Source plus a time range). media_source is the concept; the actual field is
media_refs[]on the asset, now re-keyed to the TAMS Source URI + time range (25 June TAMS WG, folding into the 30 June lock).
Checked by the bus story-context.type · story-context.additionalProperties
media_refs.source
OptionalType string · Pattern ^tams://[^/]+/.+
Example tams://tams-gcp-store/9f2e7c1a (from examples/story-context/hurricane-beat6-envelope.json)
- The 1.0 schema: “Fully-qualified TAMS Source URI — tams://store/id; resolves across remote/second-hand stores.” (SOM 1.0 schema)
- The SOM glossary, Source (TAMS) (CONFIRMED): Abstract identifier and descriptor for media essence on a timeline, independent of technical representation.
Checked by the bus story-context.type · story-context.pattern
media_refs.locator
OptionalType object · Unknown fields refused
- The 1.0 schema: “Non-TAMS media store reference.” (SOM 1.0 schema)
Checked by the bus story-context.type · story-context.additionalProperties
media_refs.locator.store
RequiredType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type
media_refs.locator.ref
RequiredType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type
media_refs.label
OptionalType string
Example FEMA presser feed (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
media_refs.time_range
OptionalType timerange or array of timerange
Example [0:0_1260:0) (from examples/story-context/hurricane-beat6-envelope.json)
- The 1.0 schema: “Optional TAMS time range, or list of ranges, onto the Source.” (SOM 1.0 schema)
Checked by the bus story-context.type
authenticity_credential
OptionalType object · Unknown fields refused
- The 1.0 schema: “Media-authenticity axis (C2PA). Distinct from credibility. present:false is recorded, not hidden.” (SOM 1.0 schema)
- The SOM glossary, authenticity_credential (PROPOSED): Object on the asset: {present, standard, claim, validated_by}. Records C2PA / authenticity present or absent, openly.
- In 1.0: Ships in 1.0 and is normative. (SOM 1.0 migration note §1)
Checked by the bus story-context.type · story-context.additionalProperties
authenticity_credential.present
RequiredType boolean
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type
authenticity_credential.standard
OptionalType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
authenticity_credential.claim
OptionalType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
authenticity_credential.validated_by
OptionalType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
framing_treatment
OptionalType string
- The 1.0 schema: “Flat governed per-newsroom registry key (UPPER_SNAKE canonical, x-<lowercase> vendor). SECONDARY/TERTIARY assets; single value. The governed registry itself is not yet published — see spec/open-register.md.” (SOM 1.0 schema)
- The SOM glossary, Framing Treatment (CONFIRMED): The single treatment model in v0.3 (decision 5): one framing_treatment with one registry, capturing the editorial framing applied at composition (angle, tone, audience adaptation).
Checked by the bus story-context.type
provenance
Optional- The SOM glossary, provenance (authorship) (PROPOSED): The structured sub-object recording who or what authored an output, carried on the Asset (and on an assertion).
- In 1.0: Ships in the 1.0 schema, on assets and assertions. (SOM 1.0 schema)
Checked by the bus story-context.type
Shape: skills_config
Used by skills_config.
Unknown fields: refused. The shape lists every field it accepts.
| Field | Type | Defined by SOM | |
|---|---|---|---|
newsroom | optional | string | yes |
skills_spec_version | optional | string | not yet |
skill_executor_id | optional | string | not yet |
scope_context | optional | string | not yet |
active_skills | optional | array of object | not yet |
active_skills.skill_id | required | string | not yet |
active_skills.skill_version | required | string | not yet |
active_skills.skill_type | required | string | not yet |
active_skills.disclosure_level | optional | string | not yet |
active_skills.migration_policy | optional | string | not yet |
active_skills.skill_priority | optional | string | not yet |
broadcaster | refused | — | yes |
newsroom
OptionalType string
- The 1.0 schema: “Renamed from skills_config.broadcaster (decision 12)” (SOM 1.0 schema)
Checked by the bus story-context.type
skills_spec_version
OptionalType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
skill_executor_id
OptionalType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
scope_context
OptionalType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
active_skills
OptionalType array of object · Unknown fields refused
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type · story-context.additionalProperties
active_skills.skill_id
RequiredType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type
active_skills.skill_version
RequiredType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type
active_skills.skill_type
RequiredType string · Allowed values NEWSROOM · VENDOR · REFERENCE
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type · story-context.enum
active_skills.disclosure_level
OptionalType string · Allowed values L1 · L2 · L3
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type · story-context.enum
active_skills.migration_policy
OptionalType string · Allowed values HOT · COLD · GATED
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type · story-context.enum
active_skills.skill_priority
OptionalType string · Allowed values CRITICAL · NORMAL · LOW
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type · story-context.enum
broadcaster
RefusedType none: publishing it is refused
- Refused: SOM 1.0 forbids this field, and a message carrying it fails validation. (SOM 1.0 schema)
Checked by the bus story-context.false_schema
Shape: story_tag
Used by tags.
A tag qualified by the vocabulary it belongs to, so a governed standard and house desk tags sit in one array without colliding. The scheme namespace is governed; the value vocabulary belongs to whoever owns the scheme. (SOM 1.0 schema)
Required: scheme, value
Unknown fields: refused. The shape lists every field it accepts.
| Field | Type | Defined by SOM | |
|---|---|---|---|
scheme | required | string | yes |
value | required | string | yes |
label | optional | string | yes |
scheme
RequiredType string · Pattern ^(newsroom|iptc-mediatopic|com\.[a-z0-9-]+\.[a-z0-9-]+)$
Example iptc-mediatopic (from examples/story-context/tags.json)
- The 1.0 schema: “Vocabulary the value belongs to. newsroom is a house-local desk tag. iptc-mediatopic is an IPTC Media Topic identifier, the broadcast-standard taxonomy. com.{vendor}.{name} carries a vendor or newsroom-system vocabulary, following the same vendor carve-out the extensions object uses. Governed-but-extensible: a new first-class scheme is a registry addition, a vendor scheme needs no registry.” (SOM 1.0 schema)
Checked by the bus story-context.required · story-context.type · story-context.pattern
value
RequiredType string · Length at least 1
Example 03000000 (from examples/story-context/tags.json)
- The 1.0 schema: “The tag itself. Lowercase for the newsroom scheme, for example sport or politics; the numeric topic identifier for iptc-mediatopic. Deliberately unconstrained beyond non-empty, because the scheme namespace is what is governed and the value vocabulary belongs to the scheme owner.” (SOM 1.0 schema)
Checked by the bus story-context.required · story-context.type · story-context.minLength
label
OptionalType string
Example disaster, accident and emergency incident (from examples/story-context/tags.json)
- The 1.0 schema: “Optional human-readable label for an opaque identifier, since an IPTC topic number means nothing on a dashboard. Display only: never resolve a trigger policy on this.” (SOM 1.0 schema)
Checked by the bus story-context.type
Shape: content_ref
Used by content_refs.
Required: uri
Unknown fields: refused. The shape lists every field it accepts.
| Field | Type | Defined by SOM | |
|---|---|---|---|
uri | required | string (uri) | not yet |
mime_type | optional | string | not yet |
content_format | optional | string | yes |
placement | optional | string | not yet |
provider | optional | string | not yet |
role | optional | string | not yet |
source_id | optional | string | not yet |
uri
RequiredType string (uri)
Example https://wire.ap.org/stories/hurricane-xyz.json (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type · story-context.format.uri
mime_type
OptionalType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
content_format
OptionalType string
Example ap-som-body-json-v1 (from examples/story-context/hurricane-beat6-envelope.json)
- The SOM glossary, content_format (CONFIRMED): Identifier string on content_refs[] specifying the body shape contract.
Checked by the bus story-context.type
placement
OptionalType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
provider
OptionalType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
role
OptionalType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
source_id
OptionalType string
Example src-ap-wire (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
Shape: relation
Used by relations.
Versioned in v0.3 (§4.7); seed data structure for the Ontology Layer (SOM 1.0 schema)
Required: relation_type
| Field | Type | Defined by SOM | |
|---|---|---|---|
relation_type | required | string | yes |
target_story_id | optional | string | not yet |
_version | optional | integer | not yet |
_created_at | optional | string (date-time) | not yet |
_created_by | optional | string | not yet |
_modified_at | optional | string (date-time) | not yet |
_modified_by | optional | string | not yet |
_history | optional | array | yes |
relation_type
RequiredType string
- The SOM glossary, relation_type (CONFIRMED): Field on relations[] classifying the link between two stories.
Checked by the bus story-context.required · story-context.type
target_story_id
OptionalType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
_version
OptionalType integer
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
_created_at
OptionalType string (date-time)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type · story-context.format.date-time
_created_by
OptionalType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
_modified_at
OptionalType string (date-time)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type · story-context.format.date-time
_modified_by
OptionalType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
_history
OptionalType array
- The SOM glossary, History / History Entry (CONFIRMED): Version tracking on envelope and versioned sections.
Checked by the bus story-context.type
Shape: timecode
A string matching ^\d{2}:\d{2}:\d{2}([:;]\d{2})?$.
DEPRECATED for media references (replaced by the TAMS timerange in the 29 Jun Source re-key); retained for any non-media timecode use. (SOM 1.0 schema)
Shape: timestamp
A string matching ^\d+:\d+$.
TAMS timestamp — seconds:nanoseconds (e.g. 0:500000000 = 0.5s). (SOM 1.0 schema)
Shape: timerange
A string matching ^[\[(](\d+:\d+)?_(\d+:\d+)?[\])]$.
TAMS timerange — bracketed inclusive/exclusive over seconds:nanoseconds timestamps (e.g. [0:500000000_1:0) ). Open-ended start or end permitted. (SOM 1.0 schema)
Shape: review_state
Used by authorship_provenance.review, assertion.review.
Shared human-review record (replaces the v0.3.1 ai_enrichments[].human_reviewed boolean, which had no rejected state). REJECTED entries are marked, not deleted — the trail must show what was declined. (SOM 1.0 schema)
Required: state
Unknown fields: refused. The shape lists every field it accepts.
| Field | Type | Defined by SOM | |
|---|---|---|---|
state | required | string | not yet |
reviewer | optional | string | yes |
reviewed_at | optional | string (date-time) | not yet |
state
RequiredType string · Allowed values PENDING · CONFIRMED · REJECTED
Example CONFIRMED (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type · story-context.enum
reviewer
OptionalType string
Example std-desk-jsmith (from examples/story-context/hurricane-beat6-envelope.json)
- The 1.0 schema: “Audit actor_id shape” (SOM 1.0 schema)
Checked by the bus story-context.type
reviewed_at
OptionalType string (date-time)
Example 2026-09-11T16:35:00Z (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type · story-context.format.date-time
Shape: authorship_provenance
Used by asset.provenance, assertion.provenance.
Authorship-general provenance (v0.3.2, principle ratified 29 Jun): who or what authored this output. NOT AI-keyed — a human-captured TRANSCRIPT carries author HUMAN with no model. confidence is optional and asset-type-specific (meaningful for TRANSCRIPT/classifiers; generative free text has no calibrated confidence — do not populate a number that means nothing). Shaped as a sibling of the audit / skill-applied record so it can later assert into a C2PA manifest. (SOM 1.0 schema)
Required: author
Unknown fields: refused. The shape lists every field it accepts.
Rules across fields:
- When
authorisHUMAN,modelandmodel_versionmust be absent.
| Field | Type | Defined by SOM | |
|---|---|---|---|
author | required | string | not yet |
model | optional | string | not yet |
model_version | optional | string | not yet |
confidence | optional | number | not yet |
generated_at | optional | string (date-time) | not yet |
input_sources | optional | array of string | not yet |
prompt_hash | optional | string | not yet |
review | optional | review_state | not yet |
author
RequiredType string · Allowed values HUMAN · MODEL
Example MODEL (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type · story-context.enum
model
OptionalType string
Example asr-extract (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
model_version
OptionalType string
Example 2.1 (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
confidence
OptionalType number · Range 0 to 1
Example 0.97 (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type · story-context.minimum · story-context.maximum
generated_at
OptionalType string (date-time)
Example 2026-09-11T16:25:00Z (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type · story-context.format.date-time
input_sources
OptionalType array of string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
prompt_hash
OptionalType string
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
review
OptionalType review_state
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
Shape: assertion
Used by assertions.
A claim-about-a-thing (v0.3.2; the record ai_enrichments[] narrows to — renamed off the ai_ prefix, a human fact-checker produces verdicts too). One record shape with a discriminator, not three bespoke ones. MATCH doubles as the proposed story match for the orphan/discovery beats: a proposal, not a commitment, until review.state is CONFIRMED. Authoritative-home rule: assertions[] is the single authoritative home for a confirmed fact value; story_meaning echoes it, extensions may carry a typed copy — on disagreement the assertion wins. (SOM 1.0 schema)
Required: assertion_id, assertion_type, target, claim, asserted_at, provenance
Unknown fields: refused. The shape lists every field it accepts.
Rules across fields:
- When
assertion_typeisFACT_CHECK,claimmust carrymetricandvalue. - When
assertion_typeisMATCH,claimmust carrystory_id. - When
assertion_typeisDETECTION,claimmust carrydetection_classandverdict.
| Field | Type | Defined by SOM | |
|---|---|---|---|
assertion_id | required | string | not yet |
assertion_type | required | string | yes |
target | required | object | yes |
target.kind | required | string | not yet |
target.id | required | string | not yet |
claim | required | object | yes |
attributed_to | optional | string | yes |
asserted_at | required | string (date-time) | not yet |
confidence | optional | number | not yet |
originated_from | optional | string | yes |
review | optional | review_state | not yet |
provenance | required | authorship_provenance | not yet |
assertion_id
RequiredType string
Example assn-outage-01 (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type
assertion_type
RequiredType string · Allowed values FACT_CHECK · DETECTION · MATCH
Example FACT_CHECK (from examples/story-context/hurricane-beat6-envelope.json)
- The SOM glossary, FACT_CHECK (PROPOSED): A value of
assertion_typefor a per-claim fact-check verdict.- In 1.0: Ships in the 1.0 schema as an
assertion_typevalue. (SOM 1.0 schema)
- In 1.0: Ships in the 1.0 schema as an
Checked by the bus story-context.required · story-context.type · story-context.enum
target
RequiredType object · Unknown fields refused
- The 1.0 schema: “What the claim is about. Target kinds are the audit target set (LINK/ASSET/TELLING) plus STORY. STORY has no audit counterpart today — adding it to the audit target set is proposed so the two vocabularies converge; until that lands this set is deliberately the wider of the two.” (SOM 1.0 schema)
Checked by the bus story-context.required · story-context.type · story-context.additionalProperties
target.kind
RequiredType string · Allowed values ASSET · LINK · TELLING · STORY
Example STORY (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type · story-context.enum
target.id
RequiredType string
Example hurricane-2026-0911 (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type
claim
RequiredType object
- The 1.0 schema: “Typed claim payload, per assertion_type: FACT_CHECK {metric, value} — skills grip on typed fields, not prose; DETECTION {detection_class, verdict, ...} — what was looked for and the finding, with per-detector fields extending underneath and governed by the registry; MATCH {story_id} — the proposed story. The assertion envelope already carries the subject (target), the method (provenance), the score (confidence) and the editorial act (review), so the claim seeds only what those cannot say.” (SOM 1.0 schema)
Checked by the bus story-context.required · story-context.type
attributed_to
OptionalType string
Example FEMA Director (from examples/story-context/hurricane-beat6-envelope.json)
- The 1.0 schema: “Who made the underlying claim (e.g. FEMA Director)” (SOM 1.0 schema)
Checked by the bus story-context.type
asserted_at
RequiredType string (date-time)
Example 2026-09-11T16:27:00Z (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type · story-context.format.date-time
confidence
OptionalType number · Range 0 to 1
Example 0.95 (from examples/story-context/hurricane-beat6-envelope.json)
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type · story-context.minimum · story-context.maximum
originated_from
OptionalType string
Example asset-presser-transcript (from examples/story-context/hurricane-beat6-envelope.json)
- The 1.0 schema: “Ref to the source transcript/asset the claim came from” (SOM 1.0 schema)
Checked by the bus story-context.type
review
OptionalType review_state
Not yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.type
provenance
RequiredNot yet defined by SOM
Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.
Checked by the bus story-context.required · story-context.type
Must be refused
SOM publishes messages that every conformant system must reject. These are the ones that concern this schema, with the rule this bus reports for each, checked by the same validator the gateway runs.
| Case | Why it must fail | Field | Bus rule |
|---|---|---|---|
| story-context-ai-enrichments.json | ai_enrichments[] was removed in v0.3.2 and is rejected | ai_enrichments | story-context.false_schema |
| story-context-asset-status-finalizing.json | FINALIZING was withdrawn at 1.0 (see spec/open-register.md) | status | story-context.enum |
| story-context-asset-voice-count.json | voice_count was withdrawn at 1.0; assets permit no unknown properties | assets | story-context.additionalProperties |
| story-context-lifecycle-phase-live.json | LIVE is derived from the Telling, never stored on the story (decision 16) | phase | story-context.enum |
| story-context-missing-story-id.json | story_id is required | story_id | story-context.required |
Generated from the SOM 1.0 schemas at upstream commit 7297fef, the pack this bus validates against. Quoted SOM text is © the SOM authors, CC BY 4.0, with two changes: working-group decision numbers are shown without their #, and attributions to named working-group members are left out. How to read this reference: SOM 1.0 schema.