1@README.md
2
3- No I/O, no runtime, no Postgres: `forbid(unsafe_code)` and pure
4  functions only. Time and randomness are passed in.
5- The request bytes are the cache key's input: test exact bytes for any
6  serialization change.
7- Choice options never pass through a map type that sorts.
8- `ApiErrorKind::OutOfCredit` is inferred (a 402, or a 403 whose message
9  speaks of credit, balance, insufficient funds or quota exceeded); the vendor
10  documents no out-of-credit response. If a real one is ever seen with
11  another shape, fix `ApiError::from_response` in `src/error.rs` and correct
12  jevsnes `research/jev-api-digest.md` §10 in the same commit.