#nullable enable using System; using System.Collections.Generic; namespace Demo2.Domain { [Serializable] public sealed class Demo2NetworkEnvelope { public string Type = string.Empty; public long Sequence; public string PayloadJson = string.Empty; } [Serializable] public sealed class Demo2Handshake { public string GameVersion = Demo2Protocol.GameVersion; public int SimulationVersion = Demo2Protocol.SimulationVersion; public string PlayerId = string.Empty; public string ReconnectToken = string.Empty; public List Mods = new(); } [Serializable] public sealed class Demo2HandshakeResult { public bool Accepted; public string ErrorCode = string.Empty; public string Difference = string.Empty; public string PlayerId = string.Empty; public string ReconnectToken = string.Empty; } [Serializable] public sealed class Demo2HashBroadcast { public long Tick; public ulong StateHash; } [Serializable] public sealed class Demo2LobbyPlayer { public string PlayerId = string.Empty; public string DisplayName = string.Empty; public bool Ready; public bool Connected; } [Serializable] public sealed class Demo2LobbyState { public bool IsHost; public Demo2TransportMode Transport; public List Players = new(); } }