Pure data struct carrying compile-time governed-tool metadata.
No behaviour, no database — just a plain defstruct with enforced required fields.
Forward-compatible with MCP tool definition projection (Phase 17): the Spec fields
map directly to an MCP tool definition with zero model change.
MCP-01 projection seam (Phase 17)
The %Cairnloop.Tool.Spec{} fields project to MCP as:
title→ MCPtitledescription→ MCPdescription- tool module name → MCP
name changeset/2Ecto embedded schema → MCPinputSchema(JSON Schema projection)
Phase 17 performs this projection as a pure Spec → map transformation
with no behaviour or database involvement.