using MessagePack; using MessagePack.Formatters; namespace OECS; /// /// Custom MessagePack formatter for . /// /// Reads and writes the raw 32-bit packed value as a single uint. /// This avoids the readonly-field issue where MessagePack's built-in /// deserialization path (reflection-based field assignment) cannot /// write to readonly fields on value types. /// public class EntityFormatter : IMessagePackFormatter { public void Serialize(ref MessagePackWriter writer, Entity value, MessagePackSerializerOptions options) { writer.Write((uint)value); } public Entity Deserialize(ref MessagePackReader reader, MessagePackSerializerOptions options) { return (Entity)reader.ReadUInt32(); } }