# 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).