FEAT-STOR-004: Direct Entitlement Grant
| Reference Number | Version | Effective Date | Supersedes | Authority Level |
|---|---|---|---|---|
| FEAT-STOR-004 | 1.0 | 2026-07-27 | N/A | Normative |
I. Purpose
Define the lawful orchestration path by which a teacher directly grants an entitlement to a seat.
This FEAT is the single lawful path for:
- teacher-directed entitlement grants;
- direct hall-pass grants;
- direct privilege grants;
- any other entitlement type that the governing policy explicitly allows a teacher to grant directly.
This FEAT SHALL NOT maintain entitlement balances or mutable grant counters.
II. Authority
This FEAT is the sole lawful writer for entitlement grants with:
acquisition_type = GRANTevent_type = GRANTED
when the grant originates from a teacher-authorized direct grant.
It does not own:
- class configuration;
- policy definitions;
- Ledger truth;
- obligation truth;
- pending request storage;
- consumption or revocation history.
III. Dependencies
FEAT-CORE-000_FEATURE_EXECUTION_CONSTITUTIONAL_DIRECTIVE.mdDOM-STORE-001_STORE_AND_ENTITLEMENTS_DOMAIN.mdDOM-CLASS-001_CLASS_CONFIGURATION_DOMAIN.mdDOM-POL-001_POLICIES_DOMAIN.md- lawful teacher-directed grant policy contracts
INV-ARC-015_TEMPORAL_MODEL_AND_BOUNDARY_ENFORCEMENT.mdINV-ARC-016_LAWFUL_EXISTENCE_AND_AUDIT_LINEAGE.mdINV-ARC-021_CROSS_DOMAIN_REFERENCE_AND_COORDINATION.md
IV. Required Execution Context
The caller SHALL resolve canonical request context before entering this FEAT.
Required canonical context:
user_idclass_idseat_idactor_role = teacher
The FEAT SHALL NOT reconstruct teacher authority from route-local lookups or display labels.
V. Required Inputs
The FEAT accepts:
- canonical request context;
policy_uuid— exact immutable policy locator;target_seat_id— seat receiving the direct grant;idempotency_key— request replay guard;- optional canonical grant payload required by the product type.
The FEAT generates or resolves:
correlation_id— one identifier for the direct grant lifecycle;- canonical transaction timestamp through the temporal model.
VI. Read-Only Validation Phase
All validation SHALL complete before mutation begins.
A. Canonical context validation
Verify:
- the actor is a lawful teacher seat for
class_id; - the target seat exists within the class boundary;
- the target seat is allowed to receive the direct grant under the configured policy.
B. Policy validation
Read the configured product definition through the lawful Class Configuration / Policies interface.
Validate, as applicable:
- the product exists for
class_id; - the product supports direct grants;
- the product version is lawful and effective for the current temporal context;
- the requested entitlement type is permitted for direct grant;
- any seat-specific eligibility rules permit the grant.
The FEAT SHALL NOT copy product configuration into Store and Entitlements persistence merely to make later reads convenient.
VII. Mutation Phase
All coordinated mutations SHALL occur within one lawful transaction boundary.
A. Entitlement grant
Create one entitlement event per direct grant unit.
For each granted unit:
class_id= canonical context class;target_seat_id= target seat;actor_seat_id= teacher seat;product_id= configured product identifier;acquisition_type=GRANT;event_type=GRANTED;entitlement_type= lawful entitlement kind for the product;correlation_id= grant lifecycle correlation;timestamp= canonical transaction timestamp;payload= canonical type-specific facts required by the entitlement contract.
B. Grant quantity
If the direct grant issues multiple units, the FEAT SHALL create one immutable entitlement event per unit.
The FEAT SHALL NOT persist a direct-grant balance counter.
C. Teacher hall-pass grant
Hall-pass grants are direct grants when the policy permits them.
The FEAT SHALL NOT create a hall-pass balance row.
The FEAT SHALL NOT use productivity consumption records as the entitlement source of truth.
VIII. Lawful Postconditions
On successful direct grant:
- the grant event exists as canonical Store and Entitlements truth;
- the target seat is lawfully entitled according to the product contract;
- any subsequent consumption or revocation follows the lawful lifecycle FEAT;
- no mutable grant counter exists.
IX. Idempotency
idempotency_key SHALL protect the complete grant lifecycle.
A replay of the same lawful direct grant SHALL NOT produce duplicate entitlement events.
X. Failure Contract
Representative failures include:
TEACHER_AUTHORITY_REQUIREDTARGET_SEAT_NOT_FOUNDSCOPE_MISMATCHPRODUCT_NOT_DIRECT_GRANTABLEPRODUCT_NOT_EFFECTIVEENTITLEMENT_ALREADY_GRANTEDCROSS_DOMAIN_FAILURE
XI. Amendment
Revisions must remain consistent with DOM-STORE-001, FEAT-STOR-001, FEAT-STOR-002, FEAT-STOR-003, DOM-CLASS-001, DOM-POL-001, and the governing FEAT and temporal invariants.
Last updated: 2026-08-03