namespace MareSynchronos.Services.Mediator; #pragma warning disable MA0048 public abstract record MessageBase { public virtual bool KeepThreadContext => false; public virtual string? SubscriberKey => null; } public record SameThreadMessage : MessageBase { public override bool KeepThreadContext => true; } public record KeyedMessage(string MessageKey, bool SameThread = false) : MessageBase { public override string? SubscriberKey => MessageKey; public override bool KeepThreadContext => SameThread; } #pragma warning restore MA0048