ModernUO/Projects/UOContent.Tests
Kamron Batman 3c9434a52a refactor(spawners): non-nullable SpawnerDto; write homeRange for square bounds
Drop nullable DTO types in favor of WhenWritingDefault + sentinels (ModernUO avoids
nullable). guid/location/map/count/minDelay/maxDelay/entries are mandatory (force-written
via [JsonIgnore(Never)]); optional fields omit at their default. spawnPositionMode/
maxSpawnAttempts map their non-CLR-default "omit" value onto the default in ToDto.

Reintroduce compact homeRange: ToDto writes homeRange (the radius) only when SpawnBounds is
EXACTLY what that radius reconstructs (square, centered, standard z/depth) so the round-trip
is lossless; otherwise it writes spawnBounds. homeRange uses a -1 "absent" sentinel and a
ShouldSerialize(hr >= 0) since 0 is a valid radius WhenWritingDefault cannot emit.
JsonPropertyOrder preserves the on-disk field order.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 18:32:11 -07:00
..
Fixtures feat(spawners): add SpawnerJsonSerializer + typed JSON binding for Spawner 2026-06-25 10:27:55 -07:00
Tests refactor(spawners): non-nullable SpawnerDto; write homeRange for square bounds 2026-06-25 18:32:11 -07:00
UOContent.Tests.csproj fix: Bumps dependencies (#2472) 2026-06-07 01:25:21 -07:00