PlayerData, CultMeshSimulationFact, the Networking interop peer's CultNetInteropNote, the cultnet-py benchmark item and the Caching test documents lacked [MessagePackObject]. Only the generated codec could serialize them; MessagePackSerializer refuses such types. Non-public test documents take [MessagePackObject(AllowPrivate = true)], as consumer internal documents already do, and ConditionalCommitTests.Slow marks its private backing fields [IgnoreMember]. Same [Key]s, so payloads are unchanged: a pre/post probe over the Networking assembly and both interop peers showed identical schema id, content hash and payload bytes for all 9 documents, PlayerData equal once its Guid.NewGuid() default id is masked. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
25 lines
613 B
C#
25 lines
613 B
C#
using GameCult.Caching;
|
|
using MessagePack;
|
|
|
|
namespace GameCult.Caching.Tests
|
|
{
|
|
[CultDocument("fixtures.precut2.item", "fixtures.precut2.item.v1")]
|
|
[MessagePackObject(AllowPrivate = true)]
|
|
internal sealed class PreCut2FixtureItem
|
|
{
|
|
[Key(0)]
|
|
[CultName]
|
|
public string Name = string.Empty;
|
|
|
|
[Key(1)]
|
|
public int Count;
|
|
}
|
|
|
|
[CultDocument("fixtures.precut2.note", "fixtures.precut2.note.v1")]
|
|
[MessagePackObject(AllowPrivate = true)]
|
|
internal sealed class PreCut2FixtureNote
|
|
{
|
|
[Key(0)]
|
|
public string Text = string.Empty;
|
|
}
|
|
}
|