A type that changes all optional properties to be required, recursively.
Function types are not rewritten as that would change their formal-argument types.
A type that changes all optional properties to be required, recursively.