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