TL;DR
A gate check-in app can't depend on live Wi-Fi: scans must work offline and sync later.
Four endpoints do it: manifest download, idempotent batch push, delta pull, online search.
Client-generated UUIDs + a unique index make retries safe. Duplicates are a success status, not an error.
The problem






