hiddenColumns

Columns the user has hidden, by DataTableHeader.key.

This adds to DataTableHeader.visible: hiding here takes a column away, and showing it again cannot bring back one whose header declares visible = false. The two say different things — "the user does not want to see this" against "this column is not available" — and a restored layout has no business overruling the second.