4.2.1
(fix): Propagate the as: "request" context through discriminated and undiscriminated
union type conversion in the dynamic snippets generator. Literal-typed properties
(e.g., method: literal<"card">) are now correctly filtered from builder calls
inside union variants, matching the Java SDK builder which excludes literal
properties from setters. Fixes cannot find symbol compilation errors in
generated wire tests for types with literal discriminant fields.
(fix): Fix undiscriminated union deserialization for String | int (and similar)
unions. Previously, convertValue(Integer, String.class) would silently coerce
integers to strings, causing the String variant to always win. Primitive
instanceof checks now run before convertValue branches so exact type matches
take precedence over lossy coercion.
(fix): Fix wire test response assertions for several round-trip serialization quirks:
(1) allow explicit null fields in expected JSON to match missing fields in actual
(Jackson’s @JsonInclude(NON_ABSENT) drops Optional.empty()); (2) normalize
timezone-less ISO 8601 datetimes in expected JSON to include the Z suffix
that Jackson adds on re-serialization. Unified the two recursive JSON
normalization passes into a single tree walk.