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> |
||
|---|---|---|
| .. | ||
| Accounting | ||
| Engines | ||
| Gumps | ||
| Items | ||
| Misc | ||
| Mobiles/AI | ||
| Multis | ||
| Network/Packets | ||
| Skills | ||
| Spells | ||
| Utilities | ||
| WorldSaves | ||