polyc-query-model 2026.9.6

DataFusion-free semantic request and result vocabulary shared by Query clients and the Query service.
[package]
name = "polyc-query-model"
# Published: polyc-query depends on it, and polyc-query publishes. A pure
# leaf with no in-workspace dependencies of its own, so this is a clean
# closure addition -- same argument as polyc-projection above.
publish = true
version.workspace = true
description = "DataFusion-free semantic request and result vocabulary shared by Query clients and the Query service."
edition.workspace = true
license.workspace = true
authors.workspace = true
rust-version.workspace = true
repository.workspace = true

[package.metadata.polychrome]
layer = "component"
foundation = true
plane_role = "shared"
[package.metadata.dist]
# Published library crate (crates.io, polyc-* namespace) with no `[[bin]]`
# dist should build archives/installers for. It carries no `publish = false`
# (the crates.io dependency closure needs it publishable), so without this
# explicit opt-out dist still tries to plan a Windows MSI for it, which then
# demands WiX GUIDs this crate has no reason to carry. `dist = false` opts it
# out explicitly instead — same fix as `crates/control-plane`.
dist = false


[lib]
path = "src/lib.rs"

[dependencies]
# This crate is the query protocol's own vocabulary: no state plane, no
# engine, no transport, no columnar format. A client that links it acquires
# none of those through it.
thiserror.workspace = true
# The conversation-grant token codec (`src/grant.rs`, POLY-320): the signed
# claims a grant carries, and the one function that mints one. Moved here
# from `polyc-query`'s own `authority` module (which re-exports every item
# unchanged) so a caller holding only a local turn-read signing key — like
# `polychrome query verify`, dialing the standalone Query plane directly
# from native mode — can mint a grant without depending on `polyc-query`,
# which links `DataFusion`, Arrow, and Query's execution engine.
# `polyc-crypto` is itself a foundation Component (no state plane, no
# engine), so this is still an inward-only edge.
polyc-crypto = { version = "=2026.9.6", path = "../crypto" }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
base64 = { workspace = true }

[lints]
workspace = true