package com.pixelized.shared.lwa.protocol.websocket

import kotlinx.serialization.Serializable

@Serializable
sealed interface GameMasterEvent : SocketMessage {

    @Serializable
    class ToggleNpc(
        override val timestamp: Long,
    ) : GameMasterEvent

    @Serializable
    class TogglePlayer(
        override val timestamp: Long,
    ) : GameMasterEvent

    @Serializable
    data class DisplayPortrait(
        override val timestamp: Long,
        val characterSheetId: String?, // nullable so no CharacterSheetIdMessage implementation
    ) : GameMasterEvent
}