Upgrading is a no-op if you only map JSON onto `string`, `float`, `array` and nested models.
### Breaking
- `symfony/yaml` is now optional. Run `composer require symfony/yaml` if you map YAML
response bodies; otherwise you get a `MissingDependencyException` that says so.
- Int-backed enums whose data can be `0`, `'0'` or `false` no longer resolve to `null`.
- `DateTimeImmutable` properties are parsed with `DATE_FORMAT` instead of the constructor's
flexible parsing.
- Malformed data throws `InvalidDataException` where it previously threw `TypeError`, warned,
or silently produced a blank model.
- `AutoResolvingArrayModel::key()` returns the array key, not the iteration offset.
### Fixed
- `int` and `bool` properties were never cast and threw `TypeError`.
- Classes and enums in the global namespace were never resolved.
- `#[Key(key: '...')]` with a named argument was silently ignored.
- `$collection[] = $item` wrote to the `""` key instead of appending.
- `Content-Type: application/json; charset=utf-8` was parsed as YAML.
### Added
- Optional Carbon support: type a property as `Carbon` or `CarbonImmutable` and nothing else.