{
  "tenant": {
    "id": "11111111-1111-4111-8111-111111111111",
    "slug": "loanmeld-prod"
  },
  "projectionId": "abababab-4001-4aba-8aba-abababababab",
  "loanNumber": "58044",
  "exportedAt": "2026-05-05T14:00:00.000Z",
  "packageKey": "payments/projections/abababab-4001-4aba-8aba-abababababab/projection-export.json",
  "fileName": "loanmeld-payment-projection-58044-abababab.json",
  "contentType": "application/json",
  "checksumSha256": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
  "detail": {
    "tenant": {
      "id": "11111111-1111-4111-8111-111111111111",
      "slug": "loanmeld-prod"
    },
    "projection": {
      "id": "abababab-4001-4aba-8aba-abababababab",
      "tenantId": "11111111-1111-4111-8111-111111111111",
      "loanId": "44444444-0001-4444-8444-444444444444",
      "aggregateId": "44444444-0001-4444-8444-444444444444",
      "aggregateVersion": 1,
      "projectedBalance": "$648.55",
      "eventCount": 1,
      "payloadHash": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
      "rebuiltAt": "2026-05-05T13:44:00.000Z",
      "rebuiltBy": "22222222-2222-4222-8222-222222222222",
      "metadata": {
        "source": "local_fallback",
        "basis": "principal minus captured payment"
      }
    },
    "loan": {
      "id": "44444444-0001-4444-8444-444444444444",
      "loanNumber": "58044",
      "status": "active",
      "customerName": "Marcus Reyes",
      "principal": "$1,000.00",
      "currentBalance": "$648.55",
      "fees": "$0.00"
    },
    "balanceImpact": {
      "beforeBalance": "$1,000.00",
      "projectedBalance": "$648.55",
      "delta": "-$351.45",
      "eventCount": 1
    },
    "events": [
      {
        "paymentEventId": "abababab-1001-4aba-8aba-abababababab",
        "eventType": "payment.capture",
        "aggregateVersion": 1,
        "amount": "$351.45",
        "status": "posted",
        "payloadHash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
        "recordedAt": "2026-05-05T13:44:00.000Z",
        "ledgerTransactionId": "abababab-2001-4aba-8aba-abababababab",
        "ledgerTransactionType": "payment_capture",
        "batchId": "eeeeeeee-1001-4eee-8eee-eeeeeeeeeeee",
        "batchNumber": "B-04302026-A",
        "batchEntryId": "eeeeeeee-1101-4eee-8eee-eeeeeeeeeeee",
        "traceNumber": "043020260000001",
        "auditEventId": "abababab-3001-4aba-8aba-abababababab",
        "evidenceKey": "payments/58044/capture/evidence.json"
      }
    ],
    "ledgerEntries": [
      {
        "ledgerTransactionId": "abababab-2001-4aba-8aba-abababababab",
        "accountId": "66666666-0001-4666-8666-666666666666",
        "accountType": "cash",
        "direction": "debit",
        "amount": "$351.45",
        "createdAt": "2026-05-05T13:44:00.000Z"
      },
      {
        "ledgerTransactionId": "abababab-2001-4aba-8aba-abababababab",
        "accountId": "66666666-0002-4666-8666-666666666666",
        "accountType": "principal_receivable",
        "direction": "credit",
        "amount": "$351.45",
        "createdAt": "2026-05-05T13:44:00.000Z"
      }
    ],
    "auditTrail": [
      {
        "id": "abababab-3001-4aba-8aba-abababababab",
        "eventType": "payment.capture.posted",
        "evidenceKey": "payments/58044/capture/evidence.json",
        "occurredAt": "2026-05-05T13:44:00.000Z"
      }
    ]
  },
  "replayChecks": [
    {
      "name": "projection_event_count_matches_events",
      "status": "passed",
      "detail": "1 events replayed for projection version 1"
    },
    {
      "name": "balance_impact_event_count_matches_events",
      "status": "passed",
      "detail": "1 balance-impact events declared"
    },
    {
      "name": "ledger_transactions_balance",
      "status": "passed",
      "detail": "1 ledger transaction replayed as balanced"
    },
    {
      "name": "payload_hashes_are_retained",
      "status": "passed",
      "detail": "2 payment/projection hashes checked"
    }
  ]
}