I have only one more suggestion. It can be useful to understand do we need to add a key prefix or not, without using constans.
public interface INamedScopeProvider
{
public string BucketName { get; }
public string ScopeName { get; }
public bool IsDefaultScope { get; }
}
public interface INamedCollectionProvider
{
public string BucketName { get; }
public string ScopeName { get; }
public string CollectionName { get; }
public bool IsDefaultScope { get; }
public bool IsDefaultCollection { get; }
}