namespace LightlessSync.PlayerData.Pairs; public sealed record PairDebugInfo( bool HasHandler, bool HandlerInitialized, bool HandlerVisible, bool HandlerScheduledForDeletion, DateTime? LastDataReceivedAt, DateTime? LastApplyAttemptAt, DateTime? LastSuccessfulApplyAt, DateTime? InvisibleSinceUtc, DateTime? VisibilityEvictionDueAtUtc, double? VisibilityEvictionRemainingSeconds, string? LastFailureReason, IReadOnlyList BlockingConditions, bool IsApplying, bool IsDownloading, int PendingDownloadCount, int ForbiddenDownloadCount, bool PendingModReapply, bool ModApplyDeferred, int MissingCriticalMods, int MissingNonCriticalMods, int MissingForbiddenMods, string? MinionAddressHex, ushort? MinionObjectIndex, DateTime? MinionResolvedAtUtc, string? MinionResolveStage, string? MinionResolveFailureReason, bool MinionPendingRetry, IReadOnlyList MinionPendingRetryChanges, bool MinionHasAppearanceData, Guid OwnedPenumbraCollectionId, bool NeedsCollectionRebuild) { public static PairDebugInfo Empty { get; } = new( HasHandler: false, HandlerInitialized: false, HandlerVisible: false, HandlerScheduledForDeletion: false, LastDataReceivedAt: null, LastApplyAttemptAt: null, LastSuccessfulApplyAt: null, InvisibleSinceUtc: null, VisibilityEvictionDueAtUtc: null, VisibilityEvictionRemainingSeconds: null, LastFailureReason: null, BlockingConditions: [], IsApplying: false, IsDownloading: false, PendingDownloadCount: 0, ForbiddenDownloadCount: 0, PendingModReapply: false, ModApplyDeferred: false, MissingCriticalMods: 0, MissingNonCriticalMods: 0, MissingForbiddenMods: 0, MinionAddressHex: null, MinionObjectIndex: null, MinionResolvedAtUtc: null, MinionResolveStage: null, MinionResolveFailureReason: null, MinionPendingRetry: false, MinionPendingRetryChanges: [], MinionHasAppearanceData: false, OwnedPenumbraCollectionId: Guid.Empty, NeedsCollectionRebuild: false); }