Skip to content

Available now

story-context ​

SOM 1.0.0 180 fields

The complete state of a story at one moment, published as a snapshot and never as a delta. (SOM 1.0 conformance §6)

Message typesstory.context
Typically published byThe story's owner, the one system that publishes its snapshots: typically a newsroom computer system or planning system. (SOM Managed Bus)
Schemahttps://storyobjectmodel.com/schema/1.0/story-context.schema.json (source at 7297fef)
Defined by SOM66 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_type is ACTIVE, lifecycle is required. Otherwise lifecycle must be absent.

Fields ​

FieldTypeDefined by SOM
story_idrequiredstringyes
slugrequiredstringyes
headlinerequiredstringyes
story_typerequiredstringyes
tagsoptionalarray of story_tagyes
lifecycleoptionallifecycleyes
sequence_numberrequiredintegeryes
updated_atrequiredstring (date-time)not yet
newsroom_idoptionalstringyes
story_owneroptionalstring or objectyes
priorityoptionalobjectyes
priority.levelrequiredstringnot yet
priority.reasonoptionalstringnot yet
priority.escalated_byoptionalstringnot yet
priority.escalated_atoptionalstring (date-time)not yet
premiseoptionalobjectyes
premise.expected_outcomeoptionalstringnot yet
premise.confidenceoptionalstringnot yet
premise.premise_changedoptionalbooleannot yet
premise.previous_outcomeoptionalstringnot yet
premise.actual_outcomeoptionalstringnot yet
premise.affected_assetsoptionalarray of stringnot yet
premise.change_detected_atoptionalstring (date-time)not yet
premise.change_detected_byoptionalstringnot yet
complianceoptionalarray of compliance_flagyes
editorial_gatesoptionalarray of editorial_gateyes
story_meaningoptionalobjectyes
story_meaning.whooptionalstringnot yet
story_meaning.whatoptionalstringnot yet
story_meaning.whenoptionalstringnot yet
story_meaning.whereoptionalstringnot yet
story_meaning.whyoptionalstringnot yet
story_meaning.howoptionalstringnot yet
story_meaning.summaryoptionalstringnot yet
story_meaning.confidenceoptionalnumbernot yet
story_meaning.provenance_refsoptionalarray of stringnot yet
government_approvaloptionalobjectyes
government_approval.statusrequiredstringnot yet
government_approval.jurisdictionoptionalstringnot yet
editorial_sourceoptionalarray of editorial_source_entryyes
assetsoptionalarray of assetyes
ai_enrichmentsrefused—yes
skills_configoptionalskills_configyes
content_refsoptionalarray of content_refyes
relationsoptionalarray of relationyes
collaborationoptionalobjectyes
collaboration.editing_versionoptionalintegeryes
collaboration.active_editorsoptionalarraynot yet
collaboration.lock_statusoptionalstringyes
extensionsoptionalobjectyes
instancesrefused—yes
broadcaster_idrefused—yes
sourcesrefused—yes
content_refrefused—yes
assertionsoptionalarray of assertionyes

story_id ​

Required

Type 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 ​

Required

Type 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)

Checked by the bus story-context.required · story-context.type

headline ​

Required

Type 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 ​

Required

Type 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 ​

Optional

Type 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 ​

Optional

Type lifecycle

  • The SOM glossary, Lifecycle (CONFIRMED): Current state of a story in its editorial journey.

Checked by the bus story-context.type

sequence_number ​

Required

Type 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 ​

Required

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Required

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Required

Type 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 ​

Optional

Type 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 ​

Optional

Type 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[]; sources is refused. (SOM 1.0 schema)

Checked by the bus story-context.type

assets ​

Optional

Type 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 ​

Refused

Type 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_enrichments is refused. AI outputs are assets with authorship provenance, and claims are assertions[]. (SOM 1.0 migration note)

Checked by the bus story-context.false_schema

skills_config ​

Optional

Type skills_config

  • The SOM glossary, skills_config (CONFIRMED): Versioned story context section defining active skills.

Checked by the bus story-context.type

content_refs ​

Optional

Type array of content_ref

Checked by the bus story-context.type

relations ​

Optional

Type array of relation

  • The SOM glossary, Relation (CONFIRMED): Link between two stories (relations[]).

Checked by the bus story-context.type

collaboration ​

Optional

Type 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 ​

Optional

Type integer

  • The 1.0 schema: “Renamed from collaboration.version” (SOM 1.0 schema)

Checked by the bus story-context.type

collaboration.active_editors ​

Optional

Type 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 ​

Optional

Type string

  • The SOM glossary, lock_status (CONFIRMED): Whether a story is locked for editing.

Checked by the bus story-context.type

extensions ​

Optional

Type 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 ​

Refused

Type 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 ​

Refused

Type 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 ​

Refused

Type 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 ​

Refused

Type 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 ​

Optional

Type array of assertion

  • The SOM glossary, assertions[] (PROPOSED): The record the ai_enrichments[] construct narrows to: a claim-about-a-thing, renamed off the ai_ prefix (a human fact-checker produces verdicts too).

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.

FieldTypeDefined by SOM
phaserequiredstringnot yet
phase_entered_atrequiredstring (date-time)not yet
previous_phaseoptionalstringnot yet
phase_owneroptionalobjectyes
phase_owner.user_idoptionalstringnot yet
phase_owner.display_nameoptionalstringnot yet
phase_owner.roleoptionalstringnot yet

phase ​

Required

Type 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 ​

Required

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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.

FieldTypeDefined by SOM
flag_idrequiredstringnot yet
typerequiredstringnot yet
severityrequiredstringnot yet
detailrequiredstringnot yet
jurisdictionoptionalstringnot yet
regulation_refoptionalstringnot yet
raised_byrequiredstringnot yet
raised_atrequiredstring (date-time)not yet
statusrequiredstringnot yet
media_rangeoptionalobjectyes
media_range.sourceoptionalstringyes
media_range.locatoroptionalobjectnot yet
media_range.locator.storerequiredstringnot yet
media_range.locator.refrequiredstringnot yet
media_range.time_rangeoptionaltimerange or array of timerangeyes

flag_id ​

Required

Type 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 ​

Required

Type 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 ​

Required

Type 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 ​

Required

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Required

Type 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 ​

Required

Type 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 ​

Required

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Required

Type 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 ​

Required

Type 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 ​

Optional

Type 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.

FieldTypeDefined by SOM
gate_idrequiredstringnot yet
gate_typerequiredstringnot yet
statusrequiredstringnot yet
required_by_skilloptionalstringnot yet
gate_rule_idoptionalstringnot yet
resolution_event_typeoptionalstringnot yet
assigned_tooptionalstringnot yet
blocksoptionalarray of object or stringyes
blocks.kindrequiredstringnot yet
blocks.refrequiredstringnot yet

gate_id ​

Required

Type 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 ​

Required

Type 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 ​

Required

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Required

Type 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 ​

Required

Type 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.

FieldTypeDefined by SOM
source_idrequiredstringnot yet
source_typerequiredstringnot yet
providerrequiredstringnot yet
credibilityrequiredstringyes
received_atrequiredstring (date-time)not yet
content_hashoptionalstringnot yet

source_id ​

Required

Type 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 ​

Required

Type 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 ​

Required

Type 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 ​

Required

Type 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 ​

Required

Type 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 ​

Optional

Type 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.

FieldTypeDefined by SOM
asset_idrequiredstringnot yet
asset_typerequiredstringyes
statusrequiredstringyes
evidential_positionoptionalstringyes
acquisition_stateoptionalstringyes
derived_fromoptionalarray of stringyes
produced_byoptionalstringyes
usageoptionalarray of objectyes
usage.link_idrequiredstringnot yet
usage.destination_idrequiredstringnot yet
usage.staterequiredstringnot yet
invalidated_byoptionalstringnot yet
standards_clearanceoptionalobjectyes
standards_clearance.statusoptionalstringnot yet
standards_clearance.blocked_byoptionalarray of stringnot yet
standards_clearance.last_reviewedoptionalstring (date-time)not yet
delivery_specoptionalobjectyes
delivery_spec.formatoptionalstringnot yet
delivery_spec.resolutionoptionalstringnot yet
delivery_spec.frame_rateoptionalnumbernot yet
media_refsoptionalarray of objectyes
media_refs.sourceoptionalstringyes
media_refs.locatoroptionalobjectyes
media_refs.locator.storerequiredstringnot yet
media_refs.locator.refrequiredstringnot yet
media_refs.labeloptionalstringnot yet
media_refs.time_rangeoptionaltimerange or array of timerangeyes
authenticity_credentialoptionalobjectyes
authenticity_credential.presentrequiredbooleannot yet
authenticity_credential.standardoptionalstringnot yet
authenticity_credential.claimoptionalstringnot yet
authenticity_credential.validated_byoptionalstringnot yet
framing_treatmentoptionalstringyes
provenanceoptionalauthorship_provenanceyes

asset_id ​

Required

Type 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 ​

Required

Type 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: TRANSCRIPT is an asset_type value in the 1.0 schema. (SOM 1.0 schema)

Checked by the bus asset.type_changed · story-context.required · story-context.type · story-context.enum · story-context.pattern

status ​

Required

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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).

Checked by the bus story-context.type

produced_by ​

Optional

Type string

  • The SOM glossary, produced_by (PROPOSED): Proposed field distinguishing human authorship from Skill authorship on tellings/secondary sources.

Checked by the bus story-context.type

usage ​

Optional

Type 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

Required

Type 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 ​

Required

Type 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 ​

Required

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Required

Type 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 ​

Required

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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.

Checked by the bus story-context.type · story-context.additionalProperties

authenticity_credential.present ​

Required

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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

Type authorship_provenance

  • 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.

FieldTypeDefined by SOM
newsroomoptionalstringyes
skills_spec_versionoptionalstringnot yet
skill_executor_idoptionalstringnot yet
scope_contextoptionalstringnot yet
active_skillsoptionalarray of objectnot yet
active_skills.skill_idrequiredstringnot yet
active_skills.skill_versionrequiredstringnot yet
active_skills.skill_typerequiredstringnot yet
active_skills.disclosure_leveloptionalstringnot yet
active_skills.migration_policyoptionalstringnot yet
active_skills.skill_priorityoptionalstringnot yet
broadcasterrefused—yes

newsroom ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Required

Type 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 ​

Required

Type 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 ​

Required

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Refused

Type 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.

FieldTypeDefined by SOM
schemerequiredstringyes
valuerequiredstringyes
labeloptionalstringyes

scheme ​

Required

Type 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 ​

Required

Type 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 ​

Optional

Type 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.

FieldTypeDefined by SOM
urirequiredstring (uri)not yet
mime_typeoptionalstringnot yet
content_formatoptionalstringyes
placementoptionalstringnot yet
provideroptionalstringnot yet
roleoptionalstringnot yet
source_idoptionalstringnot yet

uri ​

Required

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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

FieldTypeDefined by SOM
relation_typerequiredstringyes
target_story_idoptionalstringnot yet
_versionoptionalintegernot yet
_created_atoptionalstring (date-time)not yet
_created_byoptionalstringnot yet
_modified_atoptionalstring (date-time)not yet
_modified_byoptionalstringnot yet
_historyoptionalarrayyes

relation_type ​

Required

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type array

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.

FieldTypeDefined by SOM
staterequiredstringnot yet
revieweroptionalstringyes
reviewed_atoptionalstring (date-time)not yet

state ​

Required

Type 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 ​

Optional

Type string

Example std-desk-jsmith (from examples/story-context/hurricane-beat6-envelope.json)

Checked by the bus story-context.type

reviewed_at ​

Optional

Type 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 author is HUMAN, model and model_version must be absent.
FieldTypeDefined by SOM
authorrequiredstringnot yet
modeloptionalstringnot yet
model_versionoptionalstringnot yet
confidenceoptionalnumbernot yet
generated_atoptionalstring (date-time)not yet
input_sourcesoptionalarray of stringnot yet
prompt_hashoptionalstringnot yet
reviewoptionalreview_statenot yet

author ​

Required

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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_type is FACT_CHECK, claim must carry metric and value.
  • When assertion_type is MATCH, claim must carry story_id.
  • When assertion_type is DETECTION, claim must carry detection_class and verdict.
FieldTypeDefined by SOM
assertion_idrequiredstringnot yet
assertion_typerequiredstringyes
targetrequiredobjectyes
target.kindrequiredstringnot yet
target.idrequiredstringnot yet
claimrequiredobjectyes
attributed_tooptionalstringyes
asserted_atrequiredstring (date-time)not yet
confidenceoptionalnumbernot yet
originated_fromoptionalstringyes
reviewoptionalreview_statenot yet
provenancerequiredauthorship_provenancenot yet

assertion_id ​

Required

Type 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 ​

Required

Type 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_type for a per-claim fact-check verdict.
    • In 1.0: Ships in the 1.0 schema as an assertion_type value. (SOM 1.0 schema)

Checked by the bus story-context.required · story-context.type · story-context.enum

target ​

Required

Type 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 ​

Required

Type 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 ​

Required

Type 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 ​

Required

Type 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 ​

Optional

Type 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 ​

Required

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Optional

Type 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 ​

Required

Type authorship_provenance

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

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.

CaseWhy it must failFieldBus rule
story-context-ai-enrichments.jsonai_enrichments[] was removed in v0.3.2 and is rejectedai_enrichmentsstory-context.false_schema
story-context-asset-status-finalizing.jsonFINALIZING was withdrawn at 1.0 (see spec/open-register.md)statusstory-context.enum
story-context-asset-voice-count.jsonvoice_count was withdrawn at 1.0; assets permit no unknown propertiesassetsstory-context.additionalProperties
story-context-lifecycle-phase-live.jsonLIVE is derived from the Telling, never stored on the story (decision 16)phasestory-context.enum
story-context-missing-story-id.jsonstory_id is requiredstory_idstory-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.

SOM is an open standard maintained by the SOM working group. This service is not endorsed by it.