namespace PkmnLib.Dynamic.Events;

/// <summary>
/// Allows for the batching of multiple events that should be shown at the same time.
/// </summary>
/// <remarks>
/// This is useful for when we send multiple events to the client in sequence, but we want to show them in one go.
/// For example, when a Pokemon gets hurt by poison, we want to show the purple poison animation and the damage at the
/// same time. This is done by batching the events together.
/// </remarks>
public readonly record struct EventBatchId()
{
    /// <summary>
    /// The unique identifier for this batch of events.
    /// </summary>
    public Guid Id { get; init; } = Guid.NewGuid();
}