[
  {
    "id": "accepted-without-intermediate-progress",
    "steps": ["loadTender", "accept", "pickup", "deliveryDirect", "freightInvoice"],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": ["shipmentStatus"],
    "expectedOutcome": "PASSED"
  },
  {
    "id": "closed-acceptance-without-status-cannot-pass",
    "steps": ["loadTender", "accept", "freightInvoice"],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": ["shipmentStatus"],
    "expectedOutcome": "FAILED"
  },
  {
    "id": "changed-tender-is-not-an-original-tender",
    "steps": ["loadTender", "accept", "pickup", "enroute", "delivery", "freightInvoice"],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": ["shipmentStatus"],
    "expectedOutcome": "FAILED",
    "expectedCheck": "assertion:originalTender",
    "changes": [{"stepId": "loadTender", "replacements": [["B2A*00~", "B2A*04~"]]}]
  },
  {
    "id": "second-pickup-is-not-progress",
    "steps": ["loadTender", "accept", "pickup", "enroute", "delivery", "freightInvoice"],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": ["shipmentStatus"],
    "expectedOutcome": "FAILED",
    "expectedCheck": "assertion:onePickup",
    "changes": [{"stepId": "enroute", "replacements": [["AT7*X6*", "AT7*AF*"]]}]
  },
  {
    "id": "second-delivery-is-not-progress",
    "steps": ["loadTender", "accept", "pickup", "enroute", "delivery", "freightInvoice"],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": ["shipmentStatus"],
    "expectedOutcome": "FAILED",
    "expectedCheck": "assertion:oneDelivery",
    "changes": [{"stepId": "enroute", "replacements": [["AT7*X6*", "AT7*D1*"]]}]
  },
  {
    "id": "batched-events-are-not-silently-discarded",
    "steps": ["loadTender", "accept", "pickup", "enroute", "delivery", "freightInvoice"],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": ["shipmentStatus"],
    "expectedOutcome": "FAILED",
    "expectedCheck": "assertion:eventTimeProfile",
    "changes": [{"stepId": "enroute", "replacements": [["SE*6*0004~", "AT7*X6*NS***20261005*1100*UT~\nSE*7*0004~"]]}]
  },
  {
    "id": "invoice-detail-mismatch",
    "steps": ["loadTender", "accept", "pickup", "enroute", "delivery", "freightInvoice"],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": ["shipmentStatus"],
    "expectedOutcome": "FAILED",
    "expectedCheck": "assertion:invoiceDetailMatches",
    "changes": [{"stepId": "freightInvoice", "replacements": [["L1*1*1500*FR*150000~", "L1*1*1400*FR*140000~"]]}]
  },
  {
    "id": "additional-charge-is-outside-single-charge-profile",
    "steps": ["loadTender", "accept", "pickup", "enroute", "delivery", "freightInvoice"],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": ["shipmentStatus"],
    "expectedOutcome": "FAILED",
    "expectedCheck": "assertion:oneInvoiceCharge",
    "changes": [{"stepId": "freightInvoice", "replacements": [
      ["L1*1*1500*FR*150000~", "L1*1*1400*FR*140000~\nL1*2*100*FR*10000~"],
      ["SE*9*0006~", "SE*10*0006~"]
    ]}]
  },
  {
    "id": "accepted-delivered-invoiced",
    "steps": [
      "loadTender",
      "accept",
      "pickup",
      "enroute",
      "delivery",
      "freightInvoice"
    ],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": [
      "shipmentStatus"
    ],
    "expectedOutcome": "PASSED",
    "verifyAttachmentGuidance": true
  },
  {
    "id": "declined-tender-is-complete",
    "steps": [
      "loadTender",
      "decline"
    ],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": [],
    "expectedOutcome": "PASSED"
  },
  {
    "id": "delivery-alone-does-not-close-collection",
    "steps": [
      "loadTender",
      "accept",
      "pickup",
      "enroute",
      "delivery",
      "freightInvoice"
    ],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": [],
    "expectedOutcome": "PENDING"
  },
  {
    "id": "accepted-waits-for-status",
    "steps": [
      "loadTender",
      "accept"
    ],
    "evaluatedAfterSeconds": 120,
    "closeSteps": [],
    "expectedOutcome": "PENDING"
  },
  {
    "id": "decline-cannot-have-invoice",
    "steps": [
      "loadTender",
      "decline",
      "freightInvoice"
    ],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": [],
    "expectedOutcome": "FAILED"
  },
  {
    "id": "decline-cannot-have-status",
    "steps": [
      "loadTender",
      "decline",
      "pickup"
    ],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": [],
    "expectedOutcome": "FAILED"
  },
  {
    "id": "unknown-response-action",
    "steps": [
      "loadTender",
      "accept",
      "pickup",
      "enroute",
      "delivery",
      "freightInvoice"
    ],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": [
      "shipmentStatus"
    ],
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "accept",
        "replacements": [
          [
            "*A~",
            "*D~"
          ]
        ]
      }
    ],
    "expectedCheck": "assertion:responseActionSupported"
  },
  {
    "id": "wrong-response-load",
    "steps": [
      "loadTender",
      "accept",
      "pickup",
      "enroute",
      "delivery",
      "freightInvoice"
    ],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": [
      "shipmentStatus"
    ],
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "accept",
        "replacements": [
          [
            "LOAD1001",
            "LOAD9999"
          ]
        ]
      }
    ],
    "expectedCheck": "transition:responseForTender"
  },
  {
    "id": "wrong-status-load",
    "steps": [
      "loadTender",
      "accept",
      "pickup",
      "enroute",
      "delivery",
      "freightInvoice"
    ],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": [
      "shipmentStatus"
    ],
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "enroute",
        "replacements": [
          [
            "LOAD1001",
            "LOAD9999"
          ]
        ]
      }
    ],
    "expectedCheck": "transition:acceptedLoadStatus"
  },
  {
    "id": "wrong-invoice-load",
    "steps": [
      "loadTender",
      "accept",
      "pickup",
      "enroute",
      "delivery",
      "freightInvoice"
    ],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": [
      "shipmentStatus"
    ],
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "freightInvoice",
        "replacements": [
          [
            "LOAD1001",
            "LOAD9999"
          ]
        ]
      }
    ],
    "expectedCheck": "transition:invoiceAfterStatus"
  },
  {
    "id": "wrong-response-carrier",
    "steps": [
      "loadTender",
      "accept",
      "pickup",
      "enroute",
      "delivery",
      "freightInvoice"
    ],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": [
      "shipmentStatus"
    ],
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "accept",
        "replacements": [
          [
            "EXMP",
            "OTHR"
          ]
        ]
      }
    ],
    "expectedCheck": "assertion:responseCarrierMatches"
  },
  {
    "id": "wrong-status-carrier",
    "steps": [
      "loadTender",
      "accept",
      "pickup",
      "enroute",
      "delivery",
      "freightInvoice"
    ],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": [
      "shipmentStatus"
    ],
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "enroute",
        "replacements": [
          [
            "EXMP",
            "OTHR"
          ]
        ]
      }
    ],
    "expectedCheck": "transition:acceptedLoadStatus"
  },
  {
    "id": "wrong-invoice-carrier",
    "steps": [
      "loadTender",
      "accept",
      "pickup",
      "enroute",
      "delivery",
      "freightInvoice"
    ],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": [
      "shipmentStatus"
    ],
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "freightInvoice",
        "replacements": [
          [
            "EXMP",
            "OTHR"
          ]
        ]
      }
    ],
    "expectedCheck": "assertion:invoiceCarrierMatches"
  },
  {
    "id": "no-pickup-event",
    "steps": [
      "loadTender",
      "accept",
      "pickup",
      "enroute",
      "delivery",
      "freightInvoice"
    ],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": [
      "shipmentStatus"
    ],
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "pickup",
        "replacements": [
          [
            "AT7*AF*",
            "AT7*X6*"
          ]
        ]
      }
    ],
    "expectedCheck": "assertion:pickupComesFirst"
  },
  {
    "id": "no-delivery-event",
    "steps": [
      "loadTender",
      "accept",
      "pickup",
      "enroute",
      "delivery",
      "freightInvoice"
    ],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": [
      "shipmentStatus"
    ],
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "delivery",
        "replacements": [
          [
            "AT7*D1*",
            "AT7*X6*"
          ]
        ]
      }
    ],
    "expectedCheck": "assertion:deliveryComesLast"
  },
  {
    "id": "unknown-status-code",
    "steps": [
      "loadTender",
      "accept",
      "pickup",
      "enroute",
      "delivery",
      "freightInvoice"
    ],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": [
      "shipmentStatus"
    ],
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "enroute",
        "replacements": [
          [
            "AT7*X6*",
            "AT7*X1*"
          ]
        ]
      }
    ],
    "expectedCheck": "assertion:statusCodesSupported"
  },
  {
    "id": "business-events-reverse-despite-receipt-order",
    "steps": [
      "loadTender",
      "accept",
      "pickup",
      "enroute",
      "delivery",
      "freightInvoice"
    ],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": [
      "shipmentStatus"
    ],
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "enroute",
        "replacements": [
          [
            "*1000*UT~",
            "*0800*UT~"
          ]
        ]
      }
    ],
    "expectedCheck": "assertion:eventsAreChronological"
  },
  {
    "id": "duplicate-event-time",
    "steps": [
      "loadTender",
      "accept",
      "pickup",
      "enroute",
      "delivery",
      "freightInvoice"
    ],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": [
      "shipmentStatus"
    ],
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "enroute",
        "replacements": [
          [
            "*1000*UT~",
            "*0900*UT~"
          ]
        ]
      }
    ],
    "expectedCheck": "assertion:eventTimesAreUnique"
  },
  {
    "id": "local-time-is-not-assumed-utc",
    "steps": [
      "loadTender",
      "accept",
      "pickup",
      "enroute",
      "delivery",
      "freightInvoice"
    ],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": [
      "shipmentStatus"
    ],
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "enroute",
        "replacements": [
          [
            "*UT~",
            "*LT~"
          ]
        ]
      }
    ],
    "expectedCheck": "assertion:utcOnly"
  },
  {
    "id": "seconds-not-silently-truncated",
    "steps": [
      "loadTender",
      "accept",
      "pickup",
      "enroute",
      "delivery",
      "freightInvoice"
    ],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": [
      "shipmentStatus"
    ],
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "enroute",
        "replacements": [
          [
            "*1000*UT~",
            "*100030*UT~"
          ]
        ]
      }
    ],
    "expectedCheck": "assertion:eventTimeProfile"
  },
  {
    "id": "invoice-delivery-date-differs",
    "steps": [
      "loadTender",
      "accept",
      "pickup",
      "enroute",
      "delivery",
      "freightInvoice"
    ],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": [
      "shipmentStatus"
    ],
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "freightInvoice",
        "replacements": [
          [
            "150000**20261005*035",
            "150000**20261004*035"
          ]
        ]
      }
    ],
    "expectedCheck": "assertion:deliveryDateMatches"
  },
  {
    "id": "invoice-dated-before-delivery",
    "steps": [
      "loadTender",
      "accept",
      "pickup",
      "enroute",
      "delivery",
      "freightInvoice"
    ],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": [
      "shipmentStatus"
    ],
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "freightInvoice",
        "replacements": [
          [
            "*20261006*150000",
            "*20261004*150000"
          ]
        ]
      }
    ],
    "expectedCheck": "assertion:invoiceDateAfterDelivery"
  },
  {
    "id": "freight-charge-mismatch",
    "steps": [
      "loadTender",
      "accept",
      "pickup",
      "enroute",
      "delivery",
      "freightInvoice"
    ],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": [
      "shipmentStatus"
    ],
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "freightInvoice",
        "replacements": [
          [
            "*20261006*150000",
            "*20261006*160000"
          ]
        ]
      }
    ],
    "expectedCheck": "assertion:invoiceMatchesAgreedCharge"
  },
  {
    "id": "invoice-summary-mismatch",
    "steps": [
      "loadTender",
      "accept",
      "pickup",
      "enroute",
      "delivery",
      "freightInvoice"
    ],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": [
      "shipmentStatus"
    ],
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "freightInvoice",
        "replacements": [
          [
            "L3*1000*G***150000",
            "L3*1000*G***160000"
          ]
        ]
      }
    ],
    "expectedCheck": "assertion:invoiceSummaryMatches"
  },
  {
    "id": "invoice-currency-mismatch",
    "steps": [
      "loadTender",
      "accept",
      "pickup",
      "enroute",
      "delivery",
      "freightInvoice"
    ],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": [
      "shipmentStatus"
    ],
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "freightInvoice",
        "replacements": [
          [
            "C3*USD",
            "C3*CAD"
          ]
        ]
      }
    ],
    "expectedCheck": "assertion:invoiceCurrencyMatches"
  },
  {
    "id": "late-response",
    "steps": [
      "loadTender",
      "accept",
      "pickup",
      "enroute",
      "delivery",
      "freightInvoice"
    ],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": [
      "shipmentStatus"
    ],
    "expectedOutcome": "FAILED",
    "observedAfterSeconds": {
      "accept": 7201
    },
    "expectedCheck": "transition:responseForTender"
  },
  {
    "id": "invoice-before-status-receipt",
    "steps": [
      "loadTender",
      "accept",
      "pickup",
      "enroute",
      "delivery",
      "freightInvoice"
    ],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": [
      "shipmentStatus"
    ],
    "expectedOutcome": "FAILED",
    "observedAfterSeconds": {
      "freightInvoice": 99000
    },
    "expectedCheck": "transition:invoiceAfterStatus"
  },
  {
    "id": "older-event-received-last-is-not-delivery",
    "steps": [
      "loadTender",
      "accept",
      "pickup",
      "enroute",
      "delivery",
      "freightInvoice"
    ],
    "evaluatedAfterSeconds": 173000,
    "closeSteps": [
      "shipmentStatus"
    ],
    "expectedOutcome": "FAILED",
    "observedAfterSeconds": {
      "enroute": 101000
    },
    "expectedCheck": "assertion:deliveryComesLast"
  }
]
