## Summary
`JsonPacketSerializer.SerializeEvents` throws `NotSupportedException` when given an `EntityMovedEvent` under AoT/source-generated STJ.
## Root cause
In `SerializeEventToDict`, the `EntityMovedEvent` arm is the only case that does:
```csharp
dict = JsonSerializer.Deserialize<Dictionary<string, object?>>(json1, GameServerJsonContext.Default.DictionaryStringObject) ?? dict;
```
leaving `JsonElement` values in the dictionary. Every other event arm uses `ConvertJsonToDictionary`, which unwraps to primitives.
When `SerializeEvents` then writes `List<Dictionary<string, object?>>` via `GameServerJsonContext`, AoT rejects `JsonElement`.
## Repro
Pinned characterization test: `JsonPacketSerializerSwitchCoverageTests.SerializeEvents_EntityMovedEvent_ThrowsNotSupported_DueToJsonElementLeak` on branch `test/coverage-wave-2026-07` / PR #454.
## Fix
Change the `EntityMovedEvent` arm to use `ConvertJsonToDictionary(json1)` like the sibling cases.
## Impact
JSON (browser/debug) clients cannot receive entity-moved events; MessagePack path is unaffected.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
JsonPacketSerializer.SerializeEventsthrowsNotSupportedExceptionwhen given anEntityMovedEventunder AoT/source-generated STJ.Root cause
In
SerializeEventToDict, theEntityMovedEventarm is the only case that does:leaving
JsonElementvalues in the dictionary. Every other event arm usesConvertJsonToDictionary, which unwraps to primitives.When
SerializeEventsthen writesList<Dictionary<string, object?>>viaGameServerJsonContext, AoT rejectsJsonElement.Repro
Pinned characterization test:
JsonPacketSerializerSwitchCoverageTests.SerializeEvents_EntityMovedEvent_ThrowsNotSupported_DueToJsonElementLeakon branchtest/coverage-wave-2026-07/ PR #454.Fix
Change the
EntityMovedEventarm to useConvertJsonToDictionary(json1)like the sibling cases.Impact
JSON (browser/debug) clients cannot receive entity-moved events; MessagePack path is unaffected.