Lightweight per-contract view for documentation generation. Built from
the same TOML parse + directory walk as proto generation, so the docs
reference can’t drift from what codegen / atlas actually read.
(ROS package, srv name) pairs from every contract’s
[contract].idl when it points at a .srv. Used by proto generation:
only these .srv files get *_Request / *_Response messages.
Load every contract under dirs (recursively, skipping lib/), de-duped
by id (later dir wins, matching atlas merge semantics), sorted by id.
Backs robonix-codegen --lang docs.