ok: session A starts with 0 drafts ok: first upsert inserts ok: list returns the new draft ok: payload persisted correctly ok: second upsert updates same row ok: still 1 draft after update ok: qty updated to 3 ok: session A list doesn't leak session B drafts ok: session B has its own draft ok: delete with wrong session id rejected ok: draft still in session A after rejected delete ok: correct delete succeeds ok: session A back to 0 drafts DONE