- [ ] `Client` that the user can keep around - [ ] For native, this would wrap `ureq::Agent`, and use [http-cache-semantics](https://github.com/kornelski/rusty-http-cache-semantics) to handle caching - [ ] For web, it would delegate everything to `fetch` (which already handles caching), and hold on state of its own