using System.Collections.Generic;

namespace SharpChat {
    public interface IServerPacket {
        long SequenceId { get; }
        IEnumerable<string> Pack();
    }

    public abstract class ServerPacket(long sequenceId = 0) : IServerPacket {
        // Allow sequence id to be manually set for potential message repeats
        public long SequenceId { get; } = sequenceId > 0 ? sequenceId : SharpId.Next();

        public abstract IEnumerable<string> Pack();
    }
}