docs(poll): describe response retirement contract
This commit is contained in:
@@ -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
|
that option, and repeated removal/revocation is an idempotent replay even after
|
||||||
the Poll has moved out of an editable lifecycle state.
|
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
|
## Identified response invariant
|
||||||
|
|
||||||
Poll stores at most one active response for each identified respondent in a
|
Poll stores at most one active response for each identified respondent in a
|
||||||
|
|||||||
Reference in New Issue
Block a user