A default may be a literal value, or a zero-arg thunk evaluated lazily when the raw value is
undefined.
Remarks
The union is redundant at the type level (unknown alone already accepts a
function) -- it's kept because this type is public API, and collapsing it to bare unknown
would erase the one thing a reader of the generated .d.ts needs to learn here.
A default may be a literal value, or a zero-arg thunk evaluated lazily when the raw value is undefined.