Opaque list() pagination cursor: base64 of ${createdAt}|${id} — the
exact (createdAt, id) tuple both stores order list() by (FIFO queue
order — byQueueOrder in store.ts). A caller derives the next page's
cursor from the last record of the current page and passes it as
ApprovalListFilter.after; round-trips through parseApprovalCursor(). Both
fields are ISO-8601/UUID-shaped and never contain '|', so the encoding is
lossless. btoa/atob (not a bundled base64 lib) because they are ambient
on Node >=16, Workers, and browsers alike — the same DOM-free-but-
web-standard posture client.ts already relies on for fetch.
Opaque list() pagination cursor: base64 of
${createdAt}|${id}— the exact (createdAt, id) tuple both stores order list() by (FIFO queue order — byQueueOrder in store.ts). A caller derives the next page's cursor from the last record of the current page and passes it as ApprovalListFilter.after; round-trips through parseApprovalCursor(). Both fields are ISO-8601/UUID-shaped and never contain '|', so the encoding is lossless. btoa/atob (not a bundled base64 lib) because they are ambient on Node >=16, Workers, and browsers alike — the same DOM-free-but- web-standard posture client.ts already relies on for fetch.