{
  "synthetic": true,
  "scope": "Invented editorial learning data. Python reference checks only; not a bank export, vendor template, executed M query, authenticated software import or compatibility proof.",
  "topic": "TP-021",
  "currency": "USD",
  "raw_teaching_rows": [
    {
      "source_row": 1,
      "page": 1,
      "transaction_key": "T1",
      "description": "Fictional supplier",
      "amount": "-80.00"
    },
    {
      "source_row": 2,
      "page": 2,
      "transaction_key": "T1",
      "description": "invoice reference A",
      "amount": null
    },
    {
      "source_row": 3,
      "page": 2,
      "transaction_key": "T2",
      "description": "Separate same-date payment",
      "amount": "-80.00"
    },
    {
      "source_row": 4,
      "page": 2,
      "transaction_key": null,
      "description": "Unresolved note",
      "amount": null
    }
  ],
  "expected_rebuilt_rows": [
    {
      "transaction_key": "T1",
      "description": "Fictional supplier invoice reference A",
      "amount": "-80.00",
      "source_rows": [
        1,
        2
      ]
    },
    {
      "transaction_key": "T2",
      "description": "Separate same-date payment",
      "amount": "-80.00",
      "source_rows": [
        3
      ]
    }
  ],
  "held_source_rows": [
    4
  ],
  "rule": "transaction_key is a manually source-verified teaching boundary, never inferred merely from date, blank amount or page adjacency."
}
