In current multipart processing code, we process fields one by one, and we had one optional siweBackupMsg field. This approach had one serious disadvantage.
Having 2 optional fields:
- Field A
- Field B
When expected field A was present in the payload, it was processed (not skipped), then field B was read successfully.
When expected field A was absent in the payload, and instead field B was the very next field, name mismatch occurred (A != B) and the field (B in this case) was entirely skipped.
The new approach reads all remaining fields into a hashmap so they can be later processed in any order.
Depends on D14704