// <auto-generated />
// Generated by tools/codegen/Generate-ProtoContractConstants.ps1.

namespace IGP.Multiplayer.Generated
{
    internal static class IGPProtoContracts
    {
        internal static class ArenaHostBootstrap
        {
            public const string Package = "curio.desktop.hostbridge.bootstrap";

            internal static class BootstrapRequest
            {
                public const int RedeemLaunchTicket = 1;
            }

            internal static class RedeemLaunchTicketRequest
            {
                public const int Ticket = 1;
                public const int Secret = 2;
            }

            internal static class BootstrapResponse
            {
                public const int RedeemLaunchTicket = 1;
                public const int Error = 2;
            }

            internal static class RedeemLaunchTicketResponse
            {
                public const int RoomId = 1;
                public const int RoomCode = 2;
                public const int PlayerId = 3;
                public const int Player = 4;
                public const int Token = 5;
                public const int ExpiresAt = 6;
                public const int ServerUrl = 7;
                public const int SessionEndpoint = 8;
                public const int SessionSecret = 9;
            }

            internal static class BootstrapPlayer
            {
                public const int Id = 1;
                public const int Name = 2;
            }

            internal static class BootstrapError
            {
                public const int Code = 1;
                public const int Message = 2;
            }
        }

        internal static class ArenaHostSession
        {
            public const string Package = "curio.desktop.hostbridge.session";

            internal static class SessionClientMessage
            {
                public const int Attach = 1;
                public const int Command = 2;
            }

            internal static class SessionAttachRequest
            {
                public const int Secret = 1;
                public const int RoomId = 2;
                public const int PlayerId = 3;
            }

            internal static class SessionCommandRequest
            {
                public const int RequestId = 1;
                public const int Command = 2;
                public const int BoolValue = 3;
                public const int StringValue = 4;
                public const int ContentJson = 7;
            }

            internal static class SessionServerMessage
            {
                public const int Attached = 1;
                public const int RoomSnapshot = 2;
                public const int CommandResult = 3;
                public const int RoomEvent = 5;
                public const int Detached = 6;
                public const int Error = 7;
                public const int DataPlane = 8;
            }

            internal static class SessionAttachedResponse
            {
                public const int RoomId = 1;
                public const int PlayerId = 2;
            }

            internal static class SessionRoomSnapshotEvent
            {
                public const int ConnectionStatus = 1;
                public const int Room = 2;
                public const int CurrentPlayer = 3;
            }

            internal static class RoomSnapshot
            {
                public const int Id = 1;
                public const int Code = 2;
                public const int Name = 3;
                public const int GameId = 4;
                public const int Status = 5;
                public const int HostId = 6;
                public const int MaxPlayers = 7;
                public const int Players = 8;
                public const int Teams = 9;
                public const int MapPublicId = 10;
                public const int MapVersionId = 11;
            }

            internal static class PlayerSnapshot
            {
                public const int Id = 1;
                public const int Name = 2;
                public const int IsReady = 3;
                public const int TeamId = 4;
                public const int IsBot = 5;
            }

            internal static class TeamSnapshot
            {
                public const int Id = 1;
                public const int Name = 2;
                public const int Color = 3;
                public const int MaxPlayers = 4;
                public const int PlayerCount = 5;
            }

            internal static class SessionCommandResponse
            {
                public const int RequestId = 1;
                public const int Success = 2;
                public const int Message = 3;
                public const int ContentJson = 4;
            }

            internal static class SessionDataPlaneDescriptor
            {
                public const int Mode = 1;
                public const int Host = 2;
                public const int Port = 3;
                public const int Token = 4;
                public const int ExpiresAtUnixMs = 5;
                public const int ReliableMessageMaxBytes = 6;
                public const int ReliableChunkMaxBytes = 7;
                public const int KcpDataPlanePayloadMaxBytes = 8;
                public const int KcpFrameMaxBytes = 9;
                public const int UnreliableUdpHost = 10;
                public const int UnreliableUdpPort = 11;
                public const int UnreliableUdpToken = 12;
                public const int UnreliableUdpExpiresAtUnixMs = 13;
                public const int UnreliableUdpPayloadMaxBytes = 14;
                public const int SdkDescriptorJson = 15;
            }

            internal static class SessionDataPlaneResponse
            {
                public const int RequestId = 1;
                public const int Success = 2;
                public const int Message = 3;
                public const int Descriptor = 4;
            }

            internal static class SessionRoomEvent
            {
                public const int EventType = 1;
                public const int RoomId = 2;
                public const int Player = 3;
                public const int PreviousHostId = 4;
                public const int CurrentHostId = 5;
                public const int PreviousStatus = 6;
                public const int CurrentStatus = 7;
            }

            internal static class SessionDetachedEvent
            {
                public const int Reason = 1;
            }

            internal static class SessionError
            {
                public const int Code = 1;
                public const int Message = 2;
            }

            internal enum SessionCommandType
            {
                Unspecified = 0,
                SetReady = 1,
                LeaveRoom = 2,
                StartGame = 3,
                ChangeTeam = 4,
                RefreshRoom = 5,
                RequestDataPlane = 7,
                FinishGame = 15,
                RematchGame = 16,
                UnlockAchievement = 17,
                ReportAchievementProgress = 18,
                ClearAchievements = 19,
            }

            internal enum SessionDataPlaneMode
            {
                Unspecified = 0,
                DirectKcp = 1,
            }

            internal enum SessionRoomEventType
            {
                Unspecified = 0,
                PlayerJoined = 1,
                PlayerLeft = 2,
                HostTransferred = 3,
                GameStarted = 4,
                GameEnded = 5,
            }
        }

        internal static class CurioSdk
        {
            public const string Package = "curio.sdk";

            internal static class JoinRoomRequest
            {
                public const int RoomId = 1;
                public const int PlayerId = 2;
                public const int Metadata = 3;
            }

            internal static class RoomEvent
            {
                public const int PlayerJoined = 1;
                public const int PlayerLeft = 2;
                public const int PlayerStateChanged = 3;
                public const int GameStarting = 4;
                public const int GameStarted = 5;
                public const int RoomUpdated = 6;
            }

            internal static class PlayerJoined
            {
                public const int Player = 1;
            }

            internal static class PlayerLeft
            {
                public const int PlayerId = 1;
            }

            internal static class PlayerStateChanged
            {
                public const int PlayerId = 1;
                public const int State = 2;
            }

            internal static class GameStarting
            {
                public const int Countdown = 1;
            }

            internal static class GameStarted
            {
                public const int ConnectionInfo = 1;
            }

            internal static class RoomUpdated
            {
                public const int Room = 1;
            }

            internal static class PlayerStateUpdate
            {
                public const int Key = 1;
                public const int StringValue = 2;
                public const int IntValue = 3;
                public const int BoolValue = 4;
            }

            internal static class GameEvent
            {
                public const int EventType = 1;
                public const int Data = 2;
            }

            internal static class Ack
            {
                public const int Success = 1;
                public const int Message = 2;
            }
        }

    }
}
