{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "BenefitMyTrip non-saving assessment request",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "cardId",
    "incidentDate",
    "incident",
    "journey",
    "overnight",
    "payment",
    "relationship",
    "travelers",
    "relationshipConfirmed",
    "reason",
    "reasonSource",
    "writtenEvidence",
    "guideConfirmed",
    "commonCarrier",
    "termsConfirmed",
    "assistance",
    "save"
  ],
  "properties": {
    "cardId": {
      "type": "string",
      "format": "uuid",
      "description": "Exact variant UUID from list_cards. Never guess card identity."
    },
    "incidentDate": {
      "type": "string",
      "format": "date",
      "description": "Real incident date, today or earlier (YYYY-MM-DD)."
    },
    "incident": {
      "type": "string",
      "enum": [
        "DELAY",
        "CANCELLATION"
      ],
      "description": "Cancellation assesses resulting delay expenses only."
    },
    "travelers": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "description": "Ask traveler count; never assume one."
    },
    "journey": {
      "type": "string",
      "enum": [
        "CONTINUING",
        "ABANDONED",
        "UNKNOWN"
      ]
    },
    "delayHours": {
      "type": [
        "number",
        "null"
      ],
      "minimum": 0,
      "maximum": 720
    },
    "overnight": {
      "type": "string",
      "enum": [
        "YES",
        "NO",
        "UNKNOWN"
      ]
    },
    "payment": {
      "type": "string",
      "enum": [
        "FULL",
        "PARTIAL",
        "ACCOUNT_REWARDS",
        "OTHER_REWARDS",
        "FLIGHT_CREDIT",
        "NONE",
        "UNKNOWN"
      ]
    },
    "relationship": {
      "type": "string",
      "enum": [
        "CARDHOLDER",
        "SPOUSE",
        "DOMESTIC_PARTNER",
        "CHILD",
        "PARENT",
        "SIBLING",
        "GRANDPARENT",
        "GRANDCHILD",
        "AUNT_UNCLE",
        "NIECE_NEPHEW",
        "GUARDIAN_WARD",
        "OTHER_FAMILY",
        "COMPANION",
        "MIXED",
        "UNKNOWN"
      ]
    },
    "childAge": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0,
      "maximum": 110
    },
    "relationshipConfirmed": {
      "type": "string",
      "enum": [
        "YES",
        "NO",
        "UNKNOWN"
      ],
      "description": "YES only after traveler explicitly confirms the displayed guide definition."
    },
    "reason": {
      "type": "string",
      "enum": [
        "WEATHER",
        "EQUIPMENT_FAILURE",
        "STRIKE",
        "HIJACKING",
        "CREW",
        "ATC",
        "AIRPORT_CLOSURE",
        "SECURITY",
        "LATE_AIRCRAFT",
        "OPERATIONAL",
        "OTHER",
        "UNKNOWN"
      ]
    },
    "reasonSource": {
      "type": "string",
      "enum": [
        "AIRLINE_APP",
        "AIRLINE_EMAIL",
        "AIRPORT_ANNOUNCEMENT",
        "AIRLINE_EMPLOYEE",
        "PERSONAL_ASSUMPTION",
        "UNKNOWN"
      ]
    },
    "writtenEvidence": {
      "type": "boolean",
      "description": "True only when written evidence is confirmed; false includes not established."
    },
    "guideConfirmed": {
      "type": "string",
      "enum": [
        "YES",
        "NO",
        "UNKNOWN"
      ],
      "description": "Never infer YES from selecting a card or reading its guide."
    },
    "commonCarrier": {
      "type": "string",
      "enum": [
        "YES",
        "NO",
        "UNKNOWN"
      ]
    },
    "termsConfirmed": {
      "type": "string",
      "enum": [
        "YES",
        "NO",
        "UNKNOWN"
      ]
    },
    "assistance": {
      "type": "string",
      "enum": [
        "NONE",
        "MEALS",
        "HOTEL",
        "REFUND",
        "MULTIPLE",
        "UNKNOWN"
      ]
    },
    "assistanceAmount": {
      "type": [
        "number",
        "null"
      ],
      "minimum": 0,
      "maximum": 100000
    },
    "purchasedInsurance": {
      "type": "string",
      "enum": [
        "YES",
        "NO",
        "UNKNOWN"
      ]
    },
    "flight": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 30
    },
    "connection": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 30
    },
    "save": {
      "const": false,
      "type": "boolean",
      "description": "Integration scope: never persist assessments."
    },
    "idempotencyKey": {
      "type": "null"
    }
  }
}
