SboxSuperuser/Api/IRecoverableAdminStore.cs

Interface for a trusted admin store that supports inspecting and recovering backups. Extends IAdminStore and declares methods to list backups and recover a selected backup as a new revision with a recovery intent.

namespace SboxSuperuser;

/// <summary>Trusted host-only storage and explicit backup recovery; never expose this interface through a player RPC.</summary>
public interface IRecoverableAdminStore : IAdminStore
{
	/// <summary>Inspects current health and up to 100 compatible committed backups, newest first.</summary>
	Task<StoreBackupList> GetBackupsAsync( StoreKey key, CancellationToken cancellation );

	/// <summary>Restores a selected backup as a new revision with a recovery intent; refuses a changed head.</summary>
	Task<StoreWriteResult> RecoverAsync( StoreKey key, Guid generationId, long expectedHeadRevision,
		AuditIntent recoveryIntent, CancellationToken cancellation );
}