docs(poll): describe response retirement contract

This commit is contained in:
2026-07-22 03:40:29 +02:00
parent 8ceb3935f5
commit 52cd362343

View File

@@ -116,6 +116,13 @@ submission. Option removal and option changes invalidate only answers bound to
that option, and repeated removal/revocation is an idempotent replay even after
the Poll has moved out of an editable lifecycle state.
Owning modules can also retire a participant's responses through the optional
response-retirement extension. Retirement is idempotent and soft-deletes the
live rows so aggregation and capacity checks stop counting them, while answers
and a reason/source retirement record remain available for audit. The boundary
accepts only server-trusted respondent or invitation identities and rejects
secret-like metadata.
## Identified response invariant
Poll stores at most one active response for each identified respondent in a