Any day work does not happen — rest day, holiday or closure, which are not the same.
A non-working day is the union of everything that stops work: the weekly rest days, dated holidays, and any other closure. It is the field most systems actually want, and the one it is most dangerous to store on its own.
Stored alone it cannot be explained. A Tuesday marked non-working could be a public holiday, a substituted holiday, a local closure or a data error, and nothing distinguishes them. When the date turns out to be wrong there is no way to tell which part was wrong.
The corpus stores the parts and derives the union, which is the right way round: the union is cheap to compute and impossible to decompose.
A rest day is the weekly part only. Non-working day includes it along with holidays and closures.
A public holiday is one cause of a non-working day. A Sunday is another, and they behave differently.
See also rest day · working day · public holiday · weekend
We hold this as derived from rest days, closures and substitutions rather than stored. See what we hold.