For agents, on top of README.md, which they read first.

Notes for agents

After any change here or in jevhooks-events, run just mod and commit plugin/hooks/jevhooks.js. The plugin loads the committed JavaScript, never this crate; an unrebuilt change is a change nobody runs.

Keep both crate types. Dropping cdylib loses the wasm; dropping rlib loses the native tests.

Nothing here may need an OS. It runs as JavaScript in a realm with no WebAssembly, timers, files or network. serde_json is fine; std::time, std::fs and threads are not.