/// A tool registered for retrieval — one entry in a [`crate::ToolRegistry`]
/// corpus.
///
/// `name`, `description`, and the two schemas drive ranking: they are
/// flattened into the searchable text (identifiers are additionally
/// space-split so `read_file` also matches "read" and "file"; from the
/// schemas, property names, property descriptions, and enum values are
/// indexed — structural JSON keywords are not). `id` is the stable key hits
/// carry back and is not itself indexed.