Result of atomic attendee creation. A failure carries the listings whose lines did not fit when the refusal was checked — empty when the failure was not one listing's capacity shortfall (a duplicate slot, a replayed ledger event, or a race that freed the room again before the check).
{ success: true; attendees: Attendee[]; } | { success: false; reason: AttendeeCreationFailureReason; listingIds: number[]; }