Currently assume that any extra unexpected columns will appear on the far right, but there could be scenarios where they appear in other positions?
It's low priority, but it would be good to check the expected list from the actual and do a named remove of the columns rather than assume they are the last X columns.
This also leads to a more "data dictionary" driven approach?