feat(entitlement): pivot to paid app ownership
Check Steam ownership of the paid app with BIsSubscribedApp; keep Debug fake ownership out of Release. Ref: https://partner.steamgames.com/doc/api/ISteamApps#BIsSubscribedApp
This commit is contained in:
@@ -1,19 +1,12 @@
|
||||
namespace ytLive.Services.Entitlement;
|
||||
|
||||
/// <summary>
|
||||
/// Where "is this copy licensed for Pro output?" comes from.
|
||||
/// Whether the current Steam account owns the paid app.
|
||||
///
|
||||
/// <para><b>One question, two sources.</b> The lifetime SKU is a Steam DLC; the monthly is a Polar
|
||||
/// lease. Both answer this interface, and everything downstream — the output profile, the greyed
|
||||
/// tier list, the notices — reads only this. Nothing outside <c>Services/Entitlement</c> may know
|
||||
/// which rail proved it.</para>
|
||||
///
|
||||
/// <para><b>Fail closed.</b> An implementation that cannot reach its source, cannot load its
|
||||
/// native library, or has no product id configured returns <c>false</c>. Pro is never a default,
|
||||
/// never a cached "probably", and never the result of an exception being swallowed as true.</para>
|
||||
/// <para>Steam is the source of truth. Failure to reach Steam, load its native library, or
|
||||
/// resolve the paid app ID returns <c>false</c>.</para>
|
||||
/// </summary>
|
||||
public interface IEntitlement
|
||||
{
|
||||
/// <summary>True when this session may emit above the free output budget.</summary>
|
||||
bool IsPro { get; }
|
||||
bool IsAppOwned { get; }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user