Currently the serviceability program client silently ignores and returns when deserializing corrupt or incompatible data. Instead, it should return an error up to the caller of GetProgramData and let the caller decide what to do from there. This is different from supporting expanded/appended fields on the data structure for compatibility, which we want the deserialization to do seamlessly without erroring.
See discussion in #979