Expand description
Everything answerable from a set of registry slices, without a bus.
A slice is a slice regardless of where it was read — each producer’s served
introspect reply off the live bus (crate::fleet_registry) or a local
registry/*.toml file (SliceSet::from_dirs). These projections take a
SliceSet and are source-agnostic; nothing app-specific is compiled in.
They lived in zenctl until issue #205. The analogous blob_list
projection was already here, and schema_dump too, so the split was
arbitrary — and it cost: zengui could render a TopicList but had no way
to build one, which is why it never showed a topic list at all. Nothing in
any of these functions needs a session, a terminal or an exit code, which
is the whole test for whether it belongs in the engine.