PresentationDisputeOutcome

Dispute outcome for one presentation occurrence. Carries selected-option identity (id/ordinal/label, matching SelectedDisputeOptionSnapshotV1 and disputeOptions[] on the render payload) plus nullable free-text submittedText from selectedOptionSnapshot.submittedText (Other / allowsText options). Does not read legacy signal-keyed insights_dispute.reason rows; those stay in unattributableDisputeCount only.

  • consequenceReleasedAt
    Type: string | null Format: date-time
    required

    the date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z

  • disputedAt
    Type: string Format: date-time
    required

    the date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z

  • releasedStrike
    Type: boolean
    required

    Whether this dispute row released a strike (insights_dispute.strike_released). Distinct from the sibling presentation-level strikeReleased flag, which is driven by a WARNING_RELEASED enforcement event on this presentation.

  • selectedOption
    Type: object | null
    required

    Snapshot of the option the student chose; null when the dispute has no snapshot.

    • id
      Type: string
      required
    • label
      Type: string
      required
    • ordinal
      Type: integer
      required

      Integer numbers.

  • submittedText
    Type: string | null
    required

    Student free text frozen on the dispute as selectedOptionSnapshot.submittedText; null when the chosen option forbids text or none was submitted. Distinct from the deprecated insights_dispute.reason column, which is never served here.