Prompt
"Revenue by store last month"
Authoring governed packages, putting an agent or UI in front of the API, and debugging why the planner picked the path it did. Check out the workflows below.
For teams moving from ad hoc metrics files or SQL-first marts toward explicit semantic packages with entities, model-level measures, time roles, and thin curated metric layers.
package.yml, graph.yml, models/**, metrics/**.| Authoring concern | Runtime support | Why it matters |
|---|---|---|
| Graph-first identity | Strongly supported | Stable roots and safe traversal policy |
| Historical joins | Supported with guardrails | Preserve semantic meaning across validity windows |
| Clock variants and comparison families | Demonstrated in the active package | Helps callers compare ordered versus delivered or peer metrics cleanly |
A guided builder path for internal apps, exploration tools, and LLM agents — without turning each caller into a mini planner. Same surface for HTTP/JSON and MCP.
capabilities for orientation, then discover for object matches.build-options and valid-values keep the next move legal."Revenue by store last month"
discover ranks candidate metrics, measures, and dimensions.
build-options returns recommended patches and blocked alternatives.
validate, compile, and execute finalize the flow; compile includes the explain payload.
When the problem is not just returning rows but understanding why a query was legal, illegal, rewritten, or blocked.
inspect — semantic provenance and starter query patches.compile’s explain payload — chosen paths, rewrites, rendered SQL.Check object summaries, clocks, comparison metadata, and recommended next actions.
Trace alias resolution, path selection, rewrite strategy, and SQL lowering.
Use the semantic-layer comparison pack to show where native support stops and workarounds begin.