I have a data type that changes over time. Some properties will be newly added and some will be removed. These are userdata so depending on when it’s created it can be in any version. I could lazily make all the properties optional but I think in this way it loses some meaning of using Schema. So I want to track versions of it. I think there are more than one ways to do it. Unfortunately there’s no version tag so I can’t make it discriminated unions easily. But I could define Schema for each version, and try to decode in latest to oldest order, and use the first one that succeeds. But how do I manage the common properties efficiently? How do I keep this lineage safely? What about nested structs? I would love to know some use cases or advices on this one.