using MessagePack; namespace GameCult.Networking { /// /// Sample authenticated payload for changing a player-visible name. /// /// /// This is example application payload riding the shared networking contract, /// not a claim that CultNet itself is spiritually about chat lobbies forever. /// Keep the wire tag stable if other runtimes depend on it. /// [MessagePackObject] public class ChangeNameMessage : Message { /// /// Requested new username. /// [Key(0)] public string Name = string.Empty; } /// /// Sample plain chat payload. /// /// /// This exists as a dead-simple reference payload for message extension and /// cross-runtime compatibility tests. Real applications should define their /// own domain messages and keep those contracts in sync across languages. /// [MessagePackObject] public class ChatMessage : Message { /// /// Chat text content. /// [Key(0)] public string Text = string.Empty; } }