5.0.6
(fix): Fix construct_type to resolve ForwardRef annotations in nested model fields
and use strict Literal discriminant matching for undiscriminated unions.
Under Pydantic v2 with from __future__ import annotations, field annotations
like List["Block"] remain as list[ForwardRef('Block')] even after
model_rebuild. construct_type now resolves these ForwardRefs via the host
model’s module, ensuring nested data is recursively constructed into proper model
instances instead of staying as raw dicts.
Additionally, undiscriminated union resolution now requires Literal-typed
discriminant fields to be present AND matching before accepting a candidate type.
This prevents models with all-optional fields (e.g. FigureDetails) from greedily
matching inputs that belong to a different variant or to a plain-dict fallback.
5.0.5
(fix): Add enum handling to construct_type() to prevent Pydantic serialization warnings
when enum values pass through untyped model construction paths.