IncidentPresentationOutput
One offer of one incident to the student. Its render payload and source horizon are frozen at offer time, so a later deployment or cursor advance cannot rewrite what the student saw. Actions must name presentationId and revision exactly. insightId and insightTypeSlug are server-authored from the authoritative incident (including TERMINAL / TEST_SUSPENDED, which still have a triggering insight).
- incidentType: string Format: uuid
Id required - insightType: string Format: uuid
Id requiredAuthoritative derived insight id from the incident. Present for INSIGHT and TEST_SUSPENDED presentations. Never derived from request input or render prose.
- insightType: string
Type Slug requiredAuthoritative catalog slug of the triggering insight, taken from the incident's primaryInsightSlug. Present for INSIGHT and TEST_SUSPENDED presentations.
- lockoutType: string | null Format: uuid
Id requiredSet exactly for TERMINAL presentations, which commit a lockout.
- occurrenceType: integer
Number requiredReminder ordinal within the incident, starting at 1.
- offeredType: string Format: date-time
At requiredthe date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z
- policyType: string enum
Mode requiredvalues- N
O T I F Y - E
N F O R C E
- presentationType: string Format: uuid
Id required - presentationType: string enum
Status requiredvalues- O
F F E R E D - D
I S P L A Y E D - A
C K N O W L E D G E D - D
I S P U T E D - S
U S P E N D E D - S
U S P E N S I O N _ A C K N O W L E D G E D - S
U P E R S E D E D
- presentationType: string enum
Variant requiredvalues- I
N F O - W
A R N I N G - T
E R M I N A L
- render
Payload requiredFully resolved copy for the INSIGHT surface, frozen when the presentation was offered. Clients render these strings verbatim and never author copy.
- acknowledgementType: string
Confirmation Label required - bodyType: string | nullrequired
- bodyType: string | null
Addendum required - canType: boolean
Dispute required - canType: boolean
Submit Feedback required - clientType: string enum
Effect requiredvalues- N
O N E - R
E T U R N _ F U L L _ S C R E E N _ A F T E R _ A C T I O N
- consequenceType: string | null
Text required - contextType: string
Label required - disputeType: string | null
Action Label required - disputeType: string | null
Confirmation Label required - disputeType: integer | null
Max Length requiredInteger numbers.
- disputeType: array object[] · DisputeOption[]
Options requiredOne dispute choice frozen onto the presentation. The client may submit only an id listed here, and only with text the option permits.
- disputeType: string | null
Placeholder required - disputeType: string | null
Required Text required - insightType: string
Coaching required - insightType: string | null
Full Text required - insightType: string
Message required - insightType: string
Name required - insightType: string | null Format: date-time
Timestamp End requiredthe date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z
- insightType: string Format: date-time
Timestamp Start requiredthe date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z
- messageType: integer
Version requiredInteger numbers.
- numberType: integer | null
Warnings requiredInteger numbers.
- pillType: string
Label required - primaryenum
Action const:ACKNOWLEDGErequiredvalues- A
C K N O W L E D G E
- primaryType: string
Action Label required - remediationType: string enum
Preview requiredvalues- N
O N E - L
I V E _ W E B C A M
- remediationType: string | null
Preview Aria Label required - remediationType: string | null
Preview Unavailable Text required - requestedType: string
Locale required - resolvedType: string
Locale required - ruleType: object · RuleDisclosure
Disclosure requiredCollapsed rule explanation rendered beneath the notification body.
- schemaType: integer
Version requiredInteger numbers.
- surfaceenum
Kind const:INSIGHTrequiredvalues- I
N S I G H T
- thumbsType: string | null
Down Aria Label required - thumbsType: string | null
Up Aria Label required - titleType: stringrequired
- violationType: string | null
Time Label required - warningType: integer | null
Number requiredInteger numbers.
- warningType: array object[] · WarningProgressSegment[]
Progress Segments requiredOne segment of the warning strip. warningBudget is the terminal threshold: the strip carries warningBudget - 1 WARNING entries plus one TERMINAL (a single TERMINAL when the budget allows no nonterminal warning). WARNING ordinals are contiguous 1..n; TERMINAL ordinal is null.
- renderType: integer
Payload Schema Version requiredInteger numbers.
- revisionType: integerrequired
Bumped whenever the presentation is re-offered. An action naming an older revision is rejected as STALE_REVISION.
- sourceType: object
Horizon Snapshot requiredThe per-source appliedThrough values that authorized this presentation, keyed by source. A later presentation from the same source requires a strictly newer value.
- propertyType: string Format: date-time
Name the date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z
- surfaceType: string enum
Kind requiredvalues- I
N S I G H T - T
E S T _ S U S P E N D E D
