The general principle still holds, there are just caveats.
First, invalid states today may become valid tomorrow. If you make them too unrepresentable, you paint yourself into a corner (the 'required' protobuf case).
Second, the invalid states might be a smaller set than what you think they are. Maybe there's a need for manual override, maybe the external data doesn't care about your notion of valid, there may be many reasons.
First, invalid states today may become valid tomorrow. If you make them too unrepresentable, you paint yourself into a corner (the 'required' protobuf case).
Second, the invalid states might be a smaller set than what you think they are. Maybe there's a need for manual override, maybe the external data doesn't care about your notion of valid, there may be many reasons.