Change how the types and required interact with each other