That's essentially what this system does — it identifies the models and their properties that you've marked as serializable at build-time using source generation, and then allows you to provide a type resolver and converter to System.Text.Json that lets you make upgrade-able models with logic like you just described.
The assist from the source generation helps reduce some of the boilerplate you need, but there's no escaping it ultimately.
The assist from the source generation helps reduce some of the boilerplate you need, but there's no escaping it ultimately.