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> |
||
|---|---|---|
| .. | ||
| Application | ||
| BuildTool | ||
| Logger | ||
| Server | ||
| Server.Tests | ||
| UOContent | ||
| UOContent.Tests | ||