# 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:74 (opens new window)
# silent
• silent: boolean
Defined in src/license/LicenseEntitlement.ts:73 (opens new window)
When true, resolving this entitlement must not print a console message of any kind.
HF-307 decision D3 (fail-closed, silent): a typed key with no recognized token resolves
like an explicit capabilities: [] — core and protected functions only, without a message,
a warning, or a diagnostics getter.
# 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).