{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "ReasonCode",
  "type": "string",
  "description": "Machine-readable reason code. Canonical format is CATEGORY.CODE; uppercase recommended.",
  "pattern": "^[A-Z0-9][A-Z0-9._-]*$",
  "enum": [
    "FULFILLMENT.CUSTOMER_REQUEST",
    "FULFILLMENT.CUSTOMER_RETURN",
    "FULFILLMENT.NO_STOCK",
    "FULFILLMENT.OUT_OF_STOCK",
    "FULFILLMENT.PARTIAL",
    "FULFILLMENT.SHORT",
    "FULFILLMENT.SHORT_PICK",
    "FRAUD.ACCOUNT_TAKEOVER",
    "FRAUD.CHARGEBACK",
    "FRAUD.CONFIRMED",
    "FRAUD.MANUAL_REVIEW",
    "FRAUD.MISMATCH",
    "FRAUD.NEW_ACCOUNT",
    "FRAUD.RISK_SIGNAL",
    "FRAUD.STOLEN_CARD",
    "FRAUD.SUSPICIOUS_ACTIVITY",
    "FRAUD.VELOCITY",
    "INVENTORY.ADJUST",
    "INVENTORY.ADJUST_FEFO",
    "INVENTORY.ADJUST_FIFO",
    "INVENTORY.DAMAGE",
    "INVENTORY.PUTAWAY",
    "INVENTORY.RECALL",
    "INVENTORY.SHRINK",
    "INVENTORY.TRANSFER_RECEIVED",
    "INVENTORY.TRANSFER_SHIPPED",
    "LIFECYCLE.ONBOARD_VERIFY",
    "SYSTEM.AUTO_OFFLINE",
    "SYSTEM.CONTRACT_TEST",
    "SYSTEM.MANUAL_OFFLINE",
    "SYSTEM.MANUAL_ROLLBACK",
    "SYSTEM.REPLENISHMENT_AUTO",
    "SYSTEM.USECASE",
    "SYSTEM.USECASE_SEED",
    "SYSTEM.UNSPECIFIED"
  ],
  "examples": ["FULFILLMENT.SHORT_PICK", "FRAUD.SUSPICIOUS_ACTIVITY", "INVENTORY.ADJUST", "SYSTEM.AUTO_OFFLINE"]
}
