Result of an atomic attendee update. Every failure carries listingIds —
the SPECIFIC listings that failed the capacity preflight — so a caller can
tell the operator what was actually sold out instead of a bare reason
string. Empty when no particular listing is to blame: a duplicate booking
slot (see applyAttendeeAtomicEdit's duplicate-slot guard) or a
no_lines rejection.
Usage
import { type UpdateAttendeeAtomicResult } from "doc.ts";