Accepted normalization ledger:
checkout-minor-v1/A1: raw=1999 -> 1999 x 10^-2 USD = 19.99 USD
expense-major-v1/B1: raw='19.99' -> 1999 x 10^-2 USD = 19.99 USD
checkout-minor-v1/A2: raw=1000 -> 1000 x 10^-0 JPY = 1000 JPY
expense-major-v1/B2: raw='500' -> 500 x 10^-0 JPY = 500 JPY
expense-major-v1/B0: raw='0.00' -> 0 x 10^-2 USD = 0.00 USD
Rejected input rows:
row 6: precision_exceeds_source_contract
row 7: minor_amount_must_be_integer
row 8: missing_currency
row 9: unknown_source_contract
Accepted-only subtotals: JPY 1500; USD 39.98
status=partial; accepted=5/9; combined_total=None
PASS: source-bound units, exact integer normalization, currency-separated totals, rejection ledger
