§0a captures m's locked picks across all 6 questions. Two notable
divergences from inventor recommendations:
- Q1: full-edit (not partial). Modal makes every field editable —
title / description / notes / rule_code / event_type_ids (deadline);
title / description / location / appointment_type (appointment).
Requires backend expansion of buildRevertSetClauses + counter_payload
allowlist. New Slice B captures the backend work.
- Q4: suggest-changes + broadcast.ts (not suggest-changes only). Two
migrated call sites in this PR; broadcast.ts is the richest legacy
modal and demonstrates the primitive's generality.
- Q5: full-screen mobile takeover refined — must sit ABOVE the PWA
bottom-nav (so max-height accounts for --bottom-nav-height), close
button mandatory, browser back-button closes the modal (history
pushState on open + popstate listener).
§7 implementation rewritten as 5 slices: (A) primitive + CSS, (B) backend
expansion, (C) approval-edit-modal rewrite, (D) broadcast.ts retrofit,
(E) i18n + CSS cleanup. Single PR, no migration.