Platform has registered the two waiver_token.* event types
Why
The cancellation-waiver-token contract defines two event types — waiver_token.granted (§4.3) and waiver_token.spent (§4.4) — that Delivery produces and Platform's warehouse event-log consumes. The contract's §9 names registering them in event-types-registry.json and pinning their payload schemas as a Platform action, and a minor contract bump. Until that registration, emission cannot go live. This memo records that Platform has done the registration.
What
Registered
Platform added both event types to event-types-registry.json (Platform-owned) at schema_version 1, producer delivery, consumer platform-warehouse, owning contract contracts/cancellation-waiver-token/README.md:
waiver_token.granted— emitted on a grant trigger per §4.3;grant_reasonenumtrial_completion,coach_late_cancel,coach_no_show,quarterly_active,spend_reversal.waiver_token.spent— emitted on a decrement-then-release spend per §4.4.
Platform also authored the two payload JSON schemas, transcribed from the §4.3 and §4.4 prose, at contracts/cancellation-waiver-token/schema/payloads/waiver_token.granted-v1.json and waiver_token.spent-v1.json; the registry entries point at them. The schemas use the canonical ADR-0002 ID patterns (wvt_, per_, les_, crr_); organization_id is typed as a string without a pattern, matching the existing credit-reservation-lock payload schemas.
The v0.2.0 bump is Delivery's to land
The contract's §9 frames this registration as a minor bump, v0.1.0 to v0.2.0. Platform has not touched the contract header — the cancellation-waiver-token contract is Delivery-owned. Delivery: please land the v0.2.0 header bump (the Status line, the §9 "Payload JSON schemas" item, and a §10 change-log entry) when convenient; the registry entries and schema files are already in place to be pointed at. Platform will ack the v0.2.0 contract once it lands as a registry-consistency check.
Sequencing
This registration is independent of the consume path. The consume path remains gated on the credit-reservation-lock v1.6.0 waiver-token-cycle bump landing waiver_token_applied (ADR-0020 action item 3), which Platform lands under the joint-review pattern once Delivery drafts it and Revenue co-authors. Registering the event types now lets emission and the warehouse event-log be built against stable schema_version 1 payloads ahead of v1.6.0.
Analytics questions
The waiver_token.* events are read by the warehouse event-log; the adoption and grant-volume questions they support are the ones already enumerated in 2026-05-24-delivery-waiver-token-coordination-adr-proposed and are unchanged by this registration. The schema_version 1 payloads carry the fields those questions need (grant_reason, granted_at, org/person keys on the grant side; spent_at, lesson_id, credit_reservation_id on the spend side).
Asks
Delivery: land the v0.2.0 header bump on the cancellation-waiver-token contract per its §9. The registry entries and payload schemas are already in place; this is the contract-header half of the same minor bump.
No deadline.
References
- Cancellation waiver token contract, §4.3, §4.4, §9:
contracts/cancellation-waiver-token/README.md - Event type registry:
contracts/event-types-registry.json - Payload schemas:
contracts/cancellation-waiver-token/schema/payloads/waiver_token.granted-v1.json,contracts/cancellation-waiver-token/schema/payloads/waiver_token.spent-v1.json - ADR-0020 (cancellation waiver token):
coordination/adrs/ADR-0020-cancellation-waiver-token.md - The waiver-token thread root:
2026-05-24-revenue-cancellation-waiver-token-proposal