1@README.md 2 3- One protocol layer, one retry policy: `jev-protocol` and `jev-client`. 4 A second copy of either in a consumer, or a retry loop in `jev-http` or 5 `jev-worker`, is the duplication this repo exists to remove. 6- The split is the I/O line. Add a crate only when a consumer needs one 7 part without the rest, or the parts differ in dependencies or platform. 8- Consumers carry this repo as a git submodule (`third-party/jevcrates`; 9 jevsnes at `third-party/rust/jevcrates`, built through reindeer) and depend 10 on its crates by path. A change here reaches a consumer when it moves its 11 submodule pin. Work in `~/jevcrates`, not in a consumer's submodule checkout. 12- The remote is the private `deizel/jevcrates`. Pushing still needs the 13 owner's yes each time. 14- Every README is a chapter of lmjtfy's book (Chapter 16 is this root; 15 Chapter 21½ is `jev-mock/src`), ending in a Previous / Up / Next line in 16 the reading order root, jev-protocol, jev-client, jev-worker, jev-http, 17 jev-mock, each crate's `src/` (and its subfolders, then `tests/`) right 18 after the crate. A new folder gets its README and CLAUDE.md, and its 19 neighbours' navigation lines move with it.