A fictional travel team asks for a reservation-id client. A local response sequence represents an external REST service. Done means pages are validated, transient retries are bounded, repeated ids keep first encounter order, and the final attempt metric counts every transport call. No real API is contacted.
A fictional travel operations team needs a client that collects reservation ids from a paginated service. You can't assume that every response is successful or well formed. A page can be empty and still point to more work, a temporary failure can be retried, and a later page can repeat an id already seen.
The supplied response sequence is the entire API for this project. Your FakeTransport reads local data, so the exercise never sends a real request, uses credentials, or waits for a retry timer. Build the client in six continuing steps and keep service access separate from decoding and aggregation. The final output contains stable unique ids followed by an attempt count. Every retry is bounded, and permanent errors stop immediately while preserving earlier successful results.