Adding a non-nullable parameter to a class should work IFF a constructor is provided annotated with the <AT>DeprecatedConstructgorForSerialization annotation. This constructor provides defaults for the properties not present when the class may have been serialized allowing instances of it to be deserialized.
However, something like this was breaking it
when changed to something like this
Because there is the deprecated constructor this should be valid for reading instances of the class serialized as they were in the before time, in the long long ago.
The actual problem is the generics and the way constructors are selected. The types of the serialized args are the generic type because we stripped all type info off of generics a while ago because ti just causes problems. However, the evolver code wasn't and it was seeing List and List<Int> as different