# Queries: boundaries What the construct does NOT do: limits, reserved values, neighbouring constructs and the selection rule. ## Does not do - **Not execute `focused_truth`.** A 0.3-semantics kind: in 0.2 the refusal is `FOCUS_UNSUPPORTED_SEMANTICS` (fatal) without a result, the document a separate focused-evaluation form, not accepted by the audit-document consumer. A conformance scenario pins the refusal. - **Not substitute a non-marginal kind with a neighbour.** An implementation not executing the named query kind must reject it with a diagnostic. The kind list is a menu, not a guarantee that every kind executes in 0.2. - **Not add support via `query`.** A named `query` declaration computes over the law (`let`/`return`) but adds no support to the legal state. Anyone waiting for a declared query to "lay a fact" mistakes the level: facts are laid by the case and by rules; a query only reads. - **Not carry a term error in `positions`/`collect`.** The status ladder raises the status only on `truth`/`why_not`; other kinds (`positions`, `collect`, `argumentation`) do not carry a candidate term error in their status — a named but unclosed boundary. - **Not answer an off-schema question.** A question failing the question schema is rejected before computation with `QUERY_INVALID`: a `kind`-less literal used to answer `COMPUTED` instead of `REQUIRES_JUDGMENT` — an answer different in meaning. - **Not count in the explanation.** `why_not` names a rule with a computable head by compatibility, not equality, and does not tell "would have concluded another value" apart; substitution continuations read store witnesses only, cap eight per rule with a `truncated` flag. - **Not iterate worlds without presentation.** `counterfactual` requires a finite content-addressed set of candidate patches (`law.core.counterfactual-input/0.1`), explicit `mutable`/`immutable`, a cost model with a canonical nonnegative Decimal and full tier success (`TRUE_ONLY` of the goal and all constraints); any fatal before the proven cutoff is `COUNTERFACTUAL_SEARCH_INCOMPLETE`, no partial minimum published. Without a cost function "minimal change" is undefined — the kind does not execute "thinking for the author". ## Reserved and closed - The observation dictionary is closed and grows additively: `applied`, `any_applied`, `status_support`, `position_proved`, `deadline_trace`, `judgment_request(P[, A])`, `collected*`, `position_*`, `conflict_*`, `certificate`, `refused`. There is no unknown observation — there is a lowering refusal (`LDC-E1316` on short `position_count`, confirmed by run). - The status list is closed (a computation-refusal envelope is a full document with an issue and a status, without a value; top-level `error` is only a pre-computation query/version refusal). - Literalless kinds (`positions`, calendar operations) have nothing to check against a signature: arity checking does not apply to them. - A standalone question's `queryId` is a URN of the case-package namespace; the completion form is deterministic, deriving from path/date/record form is forbidden (mismatch — `LDC-E1356`). ## Neighbours and the selection rule - `truth` vs `why_not`: status vs explanation. See the selection table in `README.md`. - `truth` vs `positions()`: one proposition vs a norm-position slice. - `collect` vs `truth` with a value: listing vs checking. - `query` declaration vs standard kind: computation over the law vs question to the law; the declaration carries the result contract (`result contract`), a runtime mismatch is a conformance error. - `deadline` questions (calendar operations, `deadline policy` policies) vs `truth` about a period: a calendar operation is asked in its own kind, the date trace reads via the `deadline_trace` observation; output carry and cutoff-shift give one date on different days — the observation tells them apart, the date does not. - `interpretation_analysis` vs `truth`: a question under each reading of the group; the only place where a query takes a query, and nesting is one level only. - `weak_permission` vs strong permission (`liberty`): the weak one is "not prohibited under the closure policy", asked as a query kind, not as a position.