You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Aug 11, 2026. It is now read-only.
Service catalog, entitlements, usage metering, and derived applications need shared identifiers for features, quotas, meters, aggregation semantics, and commercial events. Free-form strings would allow silent drift between plan definitions, enforcement code, meter producers, and billing consumers.
Objective
Add deterministic build-time SaaS contract registries and conformance gates that allow reviewed derived modules to contribute commercial capability metadata without runtime code loading.
Scope
Define versioned descriptor contracts for:
feature keys and descriptions;
quota keys, units, reset periods, and enforcement mode;
meter keys, event version, quantity/value type, aggregation rule, correction semantics, and privacy classification;
billable versus informational classification;
lifecycle/commercial domain-event identifiers.
Merge base and application contributions using the existing deterministic module-composition seam.
Parent epic: #868
Depends on: #869, #870, #871
Context
Service catalog, entitlements, usage metering, and derived applications need shared identifiers for features, quotas, meters, aggregation semantics, and commercial events. Free-form strings would allow silent drift between plan definitions, enforcement code, meter producers, and billing consumers.
Objective
Add deterministic build-time SaaS contract registries and conformance gates that allow reviewed derived modules to contribute commercial capability metadata without runtime code loading.
Scope
Out of scope
Security and integrity requirements
Acceptance criteria
bun run checkinclude the new gates with parity enforcement.Testing
Documentation
Dependencies
Blocks #875 usage metering and must be consumed by #870/#871 implementations rather than creating private key lists.