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.