# LicenseEntitlement Interface

The resolved set of things a license grants, independent of how the underlying license key was parsed.

This is the contract every later HF-307 task consumes: CapabilityRegistry turns it into a ResolvedCapabilities set, gate B in the interpreter reads that set, and PR 2's ensureCapability reads it for the public API. Until PR 3 lands the real license-key payload adapter, instances of this are built by hand in tests rather than read from a real key.

# Properties

# capabilities

capabilities: ReadonlySet‹string›

Defined in src/license/LicenseEntitlement.ts:59 (opens new window)

Capability tokens this entitlement grants, recognized by this library version.


# expiry

expiry: LicenseExpiry

Defined in src/license/LicenseEntitlement.ts:66 (opens new window)


# isTrial

isTrial: boolean

Defined in src/license/LicenseEntitlement.ts:78 (opens new window)


# silent

silent: boolean

Defined in src/license/LicenseEntitlement.ts:77 (opens new window)

When true, resolving this entitlement must not print a console message of any kind.

Set from the key's own flags ONLY — the key spec spells that flag three different ways across revisions and even within one revision, and all are honoured. An unrecognized token does NOT set it: HF-307 decision D3 makes the grant silent (an unknown token grants nothing, with no message and no diagnostics getter), which is a different thing from muting the key's console output. Coupling them suppressed expiry notices as a side effect of a vocabulary mismatch, and was confirmed an implementation error (Kuba, 12.08).


# unrecognizedCapabilities

unrecognizedCapabilities: readonly string[]

Defined in src/license/LicenseEntitlement.ts:65 (opens new window)

Tokens present on the license payload that this library version does not recognize. Kept for diagnostics and tests; per HF-307 decision D3 nothing public reads this field — an unrecognized token never grants a capability, and it does so silently.


# unrestricted

unrestricted: boolean

Defined in src/license/LicenseEntitlement.ts:57 (opens new window)

true for every key this library fully understands today (gpl-v3, legacy keys).