2.10.4

(fix): Generated discriminated unions no longer emit a fromJson() override. The base JsonSerializableType::fromJson now uses late static binding (static::jsonDeserialize) so subclasses’ typed jsonDeserialize overrides dispatch correctly. This eliminates ~50 lines of duplicated code per union and resolves a PHPStan strict failure where the union override’s $decodedJson was narrowed to array<array-key, mixed> instead of array<string, mixed>.

2.10.3

(chore): Bump Node.js base image from 24.15 to 24.16.