Fix: SchemasInputDescriptorFilter: broken deserialization renders generated clients unusable
What’s wrong?
The OpenAPI spec requires an Input Descriptor’s schema property to contain a SchemasInputDescriptorFilter object.
However, on deserialization, there is a preprocessing step which ensures that lists of URIs or a dict containing a oneof_filter property are accepted as well by transforming them into said object. (These alternative input formats are also included as examples in the InputDescriptors model.) Yet, input that already IS a SchemasInputDescriptorFilter object is not handled correctly during preprocessing and deserialization fails. This results in any client adhering to the spec being unable to create valid input descriptors and, ultimately, a presentation definition to use in a DIF proof request.
What has been changed?
I adjusted the preprocessing step such that input is forwarded as-is if it looks like a SchemasInputDescriptorFilter. I also extended the tests to cover deserializing the actual object.