# Arxo Core Evaluation Result and Proof Graph Reference page for the `evaluation.schema.json` JSON schema. ## Versions Accepted `schemaVersion`: `law.core.evaluation/0.1`, `law.core.evaluation/0.2`, `law.core.evaluation/0.3`. ## Top-level fields | name | type-or-$ref | required | description | |---|---|---|---| | `conflicts` | `array` | no | — | | `issues` | `array` | no | — | | `manifest` | [`#/$defs/EvaluationManifest`](#evaluationmanifest) | yes | — | | `positions` | `array` | no | — | | `proofGraph` | [`#/$defs/ProofGraph`](#proofgraph) | yes | — | | `resultHash` | [`#/$defs/Digest`](#digest) | yes | — | | `results` | `array` | yes | — | | `schemaVersion` | enum (3) | yes | — | | `executionReceipt` | [`#/$defs/ExecutionReceipt`](#executionreceipt) | no | — | | `evidenceAcceptance` | [`#/$defs/EvidenceAcceptanceReport`](#evidenceacceptancereport) | no | — | | `admissionReport` | [`admission-report.schema.json`](/protocols/schemas/admission-report/) | no | — | ## Enumerations | location | values | |---|---| | `$defs/ApplicabilityStatus` | `"APPLICABLE"`, `"NOT_APPLICABLE"`, `"UNDETERMINED"`, `"CONFLICTED"` | | `$defs/ConflictReport/properties/unresolvedReason` | `"INCOMPARABLE"`, `"EQUAL_PRIORITY"`, `"STRICT_CONFLICT"`, `"PRIORITY_CYCLE"`, `"MISSING_PRIORITY_FACT"`, `"INTERPRETATION_DIVERGENCE"` | | `$defs/EvaluationManifest/properties/mode` | `"advisory"`, `"compliance"`, `"regulatory"`, `"simulation"`, `"audit"` | | `$defs/EvaluationManifest/properties/derivedAdmission/properties/profile` | `"admission.ground-reexecution/0.1"` | | `$defs/EvaluationManifest/allOf/0/if/properties/semantics` | `"law.core/0.1.0"` | | `$defs/EvaluationResult/allOf/0/if/properties/resultKind` | `"PROPOSITION"` | | `$defs/EvaluationResult/allOf/1/if/properties/resultKind` | `"RULE_APPLICATION"` | | `$defs/EvaluationResult/allOf/2/if/properties/resultKind` | `"NORM_POSITION"` | | `$defs/EvaluationResult/allOf/3/if/properties/resultKind` | `"COMPLIANCE"` | | `$defs/EvaluationResult/allOf/4/if/properties/resultKind` | `"CONSTRAINT"` | | `$defs/EvaluationStatus` | `"COMPUTED"`, `"MISSING_INPUT"`, `"MISSING_POLICY"`, `"REQUIRES_JUDGMENT"`, `"NON_EXECUTABLE"`, `"EXTERNAL_UNAVAILABLE"`, `"INTERPRETATION_REQUIRED"`, `"SOURCE_RESOLUTION_FAILED"`, `"PRIORITY_CONFLICT"`, `"UNRESOLVED_NORMATIVE_CONFLICT"`, `"CONFLICTED_INPUTS"`, `"TYPE_ERROR"`, `"RUNTIME_ERROR"`, `"RESOURCE_LIMIT"` | | `$defs/Issue/properties/severity` | `"info"`, `"warning"`, `"error"`, `"fatal"` | | `$defs/NormativeStatus` | `"CREATED"`, `"PENDING"`, `"ACTIVE"`, `"SATISFIED"`, `"VIOLATED"`, `"WAIVED"`, `"SUSPENDED"`, `"TERMINATED"`, `"EXPIRED"`, `"UNDETERMINED"`, `"AVAILABLE"`, `"EXERCISED"`, `"VALIDLY_EXERCISED"`, `"INVALIDLY_EXERCISED"`, `"CONFLICTED"`, `"DEFEATED"` | | `$defs/PositionInstance/properties/modality` | `"duty"`, `"liberty"`, `"power"`, `"immunity"` | | `$defs/ProofNode/allOf/0/if/properties/kind` | `"rule_application"` | | `$defs/ProofNode/allOf/1/if/properties/kind` | `"norm_creation"`, `"norm_status_transition"`, `"defeat"`, `"source_resolution"`, `"candidate_closure"`, `"constraint_check"`, `"judgment"`, `"external_snapshot_read"`, `"evidence_projection"`, `"support_admission"`, `"procedure_step"`, `"procedure_history"`, `"derived_admission"` | | `$defs/ProofNode/allOf/2/if/properties/kind` | `"derived_admission"` | | `$defs/ProofNode/allOf/2/then/properties/attributes/properties/profile` | `"admission.ground-reexecution/0.1"` | | `$defs/ProofNode/allOf/2/then/properties/attributes/properties/semantics` | `"law.core/0.2.6"` | | `$defs/ProofNode/properties/kind` | `"assertion"`, `"rule_application"`, `"function_evaluation"`, `"priority_decision"`, `"defeat"`, `"source_resolution"`, `"interpretation_selection"`, `"norm_creation"`, `"norm_status_transition"`, `"query_evaluation"`, `"external_snapshot_read"`, `"judgment"`, `"candidate_closure"`, `"constraint_check"`, `"evidence_projection"`, `"support_admission"`, `"procedure_step"`, `"procedure_history"`, `"cone_completion"`, `"derived_admission"` | | `$defs/ProofNode/properties/outcome` | `"DEFEATED"` | | `$defs/TemporalInterval/properties/end/oneOf/2` | `"infinity"` | | `$defs/TemporalInterval/properties/start/oneOf/2` | `"-infinity"` | | `$defs/TriggerStatus` | `"SATISFIED"`, `"NOT_SATISFIED"`, `"UNDETERMINED"`, `"CONFLICTED"` | | `$defs/TruthStatus` | `"TRUE_ONLY"`, `"FALSE_ONLY"`, `"BOTH"`, `"NEITHER"` | | `$defs/ResultKind` | `"DATA"`, `"COLLECTION"`, `"PROPOSITION"`, `"RULE_APPLICATION"`, `"NORM_POSITION"`, `"COMPLIANCE"`, `"CONSTRAINT"`, `"GRAPH"` | | `$defs/EvidenceDecisionReason` | `"AUTHENTICATION_HASH_MISMATCH"`, `"AUTHENTICATION_MISSING"`, `"AUTHENTICATION_NOT_AVAILABLE"`, `"AUTHENTICATION_UNBOUND"`, `"EDGE_NOT_CURRENT"`, `"EDGE_POLICY_MISMATCH"`, `"EVIDENCE_NOT_AVAILABLE"`, `"EVIDENCE_NOT_CURRENT"`, `"EVIDENCE_NOT_DECLARED"`, `"FIELD_NOT_BOUND"`, `"FIELD_TYPE_MISMATCH"`, `"NEGATED_PROPOSITION"`, `"NO_ACCEPTANCE_RULE_APPLIED"`, `"RELATION_NOT_EXECUTABLE"` | | `$defs/EvidenceDecision/properties/polarity` | `"positive"`, `"negative"` | | `$defs/EvidenceDecision/properties/decision` | `"accepted"`, `"rejected"` | | `$defs/EvidenceFactProvenance/properties/origin` | `"case_input"`, `"source_asserted"`, `"external_snapshot"`, `"derived"`, `"adjudicated"`, `"assumed_for_simulation"` | | `$defs/EvidenceBlockedAssertion/properties/reason` | `"PROTECTED_PREDICATE_REQUIRES_EVIDENCE"` | | `$defs/EvidenceBlockerConjunct/properties/trigger` | `"SATISFIED"`, `"NOT_SATISFIED"`, `"UNDETERMINED"`, `"CONFLICTED"` | | `$defs/BlockerHeadArgument/properties/status` | `"UNEVALUATED"` | | `$defs/BlockerContinuation/properties/trigger` | `"SATISFIED"`, `"NOT_SATISFIED"`, `"UNDETERMINED"`, `"CONFLICTED"` | | `$defs/BlockerDefeat/properties/reason` | `"strict-opposition"`, `"priority"`, `"defeater"` | | `$defs/WhyNotStage/properties/outsideDomain` | `true` | | `$defs/EvidenceBlocker/properties/applicability` | `"APPLICABLE"`, `"NOT_APPLICABLE"`, `"UNDETERMINED"` | | `$defs/EvidenceBlocker/properties/trigger` | `"SATISFIED"`, `"NOT_SATISFIED"`, `"UNDETERMINED"`, `"CONFLICTED"` | | `$defs/EvidenceBlocker/properties/strength` | `"strict"`, `"defeasible"`, `"defeater"` | | `$defs/EvidenceBlocker/properties/truncated` | `true` | | `properties/schemaVersion` | `"law.core.evaluation/0.1"`, `"law.core.evaluation/0.2"`, `"law.core.evaluation/0.3"` | | `allOf/0/if/properties/schemaVersion` | `"law.core.evaluation/0.2"` | | `allOf/0/then/properties/proofGraph/properties/nodes/items/if/properties/kind` | `"defeat"` | | `allOf/1/if/properties/schemaVersion/not` | `"law.core.evaluation/0.3"` | | `allOf/1/then/not/anyOf/2/properties/proofGraph/properties/nodes/contains/properties/kind` | `"derived_admission"` | | `allOf/2/then/properties/schemaVersion` | `"law.core.evaluation/0.3"` | | `allOf/3/if/properties/proofGraph/properties/nodes/contains/properties/kind` | `"derived_admission"` | | `allOf/3/then/properties/schemaVersion` | `"law.core.evaluation/0.3"` | ## Raw schema [`https://law.arxo.io/schema/evaluation.schema.json`](https://law.arxo.io/schema/evaluation.schema.json) ## `ApplicabilityStatus` Values: `"APPLICABLE"`, `"NOT_APPLICABLE"`, `"UNDETERMINED"`, `"CONFLICTED"`. ## `ConflictReport` Type: `object`. Required: `id`, `positive`, `negative`, `positiveCandidates`, `negativeCandidates`, `unresolvedReason`. | name | type-or-$ref | description | |---|---|---| | `defeatedCandidates` | `array` | — | | `id` | [`#/$defs/StableId`](#stableid) | — | | `interpretations` | `array` | — | | `negative` | [`#/$defs/JsonValue`](#jsonvalue) | — | | `negativeCandidates` | `array` | — | | `positive` | [`#/$defs/JsonValue`](#jsonvalue) | — | | `positiveCandidates` | `array` | — | | `priorityEdges` | `array` | — | | `sourceAnchors` | `array` | — | | `unresolvedReason` | enum (6) | — | ## `Date` Type: `string`. ## `Digest` Type: `string`. ## `EvaluationManifest` Type: `object`. Required: `id`, `semantics`, `programHash`, `lockfileHash`, `caseHash`, `legalTime`, `decisionTime`, `knowledgeTime`, `resolvedEditions`, `externalSnapshots`, `semanticHash`. | name | type-or-$ref | description | |---|---|---| | `calendarSnapshot` | `string` | — | | `caseHash` | [`#/$defs/Digest`](#digest) | — | | `decisionTime` | anyOf (2) | — | | `evidenceSnapshotHash` | [`#/$defs/Digest`](#digest) | — | | `externalSnapshots` | `object` | — | | `id` | [`#/$defs/StableId`](#stableid) | — | | `interpretations` | `array` | — | | `jurisdictionProfile` | `string` | Canon profile in the unified grammar `/#sha256:<64 hex>`. Present only for a computation over a package with a named profile. For documents of the 0.1 line (`semantics` = `law.core/0.1.0`, the vendored release), the field keeps its former free-form string. | | `knowledgeTime` | anyOf (2) | — | | `editionsAsPresented` | [`#/$defs/LegalTime`](#legaltime) | The date as of which the set of editions was presented by the caller. Present only for a computation with this transport field in the request; without it the field is absent and the document is byte-identical to before. | | `legalTime` | anyOf (2) | In 0.2 and later, null means a computation without a temporal slice; a consumer of the date requires an explicit legal time. | | `lockfileHash` | [`#/$defs/Digest`](#digest) | — | | `mode` | enum (5) | — | | `policies` | `object` | — | | `programHash` | [`#/$defs/Digest`](#digest) | — | | `theoryHash` | [`#/$defs/Digest`](#digest) | — | | `artifactHash` | [`#/$defs/Digest`](#digest) | — | | `resolvedEditions` | `object` | — | | `semantics` | `string` | — | | `timezone` | `string` or `null` | — | | `timezoneDbSnapshot` | `string` | — | | `temporalResolutionPolicy` | [`#/$defs/StableId`](#stableid) | — | | `solverProfile` | `string` | — | | `evidencePolicy` | [`#/$defs/StableId`](#stableid) | — | | `evidencePolicyProfile` | `string` | — | | `evidencePolicyHash` | [`#/$defs/Digest`](#digest) | — | | `semanticHash` | [`#/$defs/Digest`](#digest) | — | | `derivedAdmission` | `object` | — | ## `EvaluationResult` Type: `object`. Required: `id`, `query`, `resultKind`, `evaluationStatus`, `proof`, `normativeStatusSupports`. | name | type-or-$ref | description | |---|---|---| | `applicabilityStatus` | [`#/$defs/ApplicabilityStatus`](#applicabilitystatus) | — | | `conflicts` | `array` | — | | `evaluationStatus` | [`#/$defs/EvaluationStatus`](#evaluationstatus) | — | | `evidence` | `array` | — | | `id` | [`#/$defs/StableId`](#stableid) | — | | `judgmentRequests` | `array` | — | | `manifest` | [`#/$defs/StableId`](#stableid) | — | | `missingInputs` | `array` | — | | `normativeStatus` | [`#/$defs/NormativeStatus`](#normativestatus) | — | | `proof` | [`#/$defs/StableId`](#stableid) | — | | `query` | [`#/$defs/StableId`](#stableid) | — | | `sourceAnchors` | `array` | — | | `target` | [`#/$defs/StableId`](#stableid) | — | | `triggerStatus` | [`#/$defs/TriggerStatus`](#triggerstatus) | — | | `truthStatus` | [`#/$defs/TruthStatus`](#truthstatus) | — | | `value` | [`#/$defs/JsonValue`](#jsonvalue) | — | | `normativeStatusSupports` | `array` | — | | `resultKind` | [`#/$defs/ResultKind`](#resultkind) | — | ## `EvaluationStatus` Values: `"COMPUTED"`, `"MISSING_INPUT"`, `"MISSING_POLICY"`, `"REQUIRES_JUDGMENT"`, `"NON_EXECUTABLE"`, `"EXTERNAL_UNAVAILABLE"`, `"INTERPRETATION_REQUIRED"`, `"SOURCE_RESOLUTION_FAILED"`, `"PRIORITY_CONFLICT"`, `"UNRESOLVED_NORMATIVE_CONFLICT"`, `"CONFLICTED_INPUTS"`, `"TYPE_ERROR"`, `"RUNTIME_ERROR"`, `"RESOURCE_LIMIT"`. ## `InputRequirement` Type: `object`. Required: `id`, `kind`, `description`. | name | type-or-$ref | description | |---|---|---| | `description` | `string` | — | | `expectedType` | `string` | — | | `id` | [`#/$defs/StableId`](#stableid) | — | | `kind` | `string` | — | | `relatedNode` | [`#/$defs/StableId`](#stableid) | — | ## `Instant` Type: `string`. ## `Issue` Type: `object`. Required: `code`, `severity`, `message`. | name | type-or-$ref | description | |---|---|---| | `code` | `string` | — | | `details` | [`#/$defs/JsonValue`](#jsonvalue) | — | | `message` | `string` | — | | `relatedNodes` | `array` | — | | `severity` | enum (4) | — | ## `JsonObject` Type: `object`. ## `JsonValue` Definition `JsonValue`. ## `JudgmentRequest` Type: `object`. Required: `id`, `predicate`, `authority`, `request`. | name | type-or-$ref | description | |---|---|---| | `authority` | [`#/$defs/StableId`](#stableid) | — | | `evidence` | `array` | — | | `id` | [`#/$defs/StableId`](#stableid) | — | | `predicate` | [`#/$defs/StableId`](#stableid) | — | | `proof` | [`#/$defs/StableId`](#stableid) | — | | `request` | [`#/$defs/JsonValue`](#jsonvalue) | — | | `requestSchema` | [`#/$defs/JsonValue`](#jsonvalue) | — | ## `NormativeStatus` Lifecycle states of a legal position. `AVAILABLE`, `EXERCISED`, `VALIDLY_EXERCISED` and `INVALIDLY_EXERCISED` are reserved and not produced in 0.2: the power, liberty and immunity lifecycle is created, active, suspended, terminated or expired only. Exercise validity is an event property, read via the POWER_INVALID_EXERCISE issue and the std literal invalidly_exercised(position), not via this enum. Values: `"CREATED"`, `"PENDING"`, `"ACTIVE"`, `"SATISFIED"`, `"VIOLATED"`, `"WAIVED"`, `"SUSPENDED"`, `"TERMINATED"`, `"EXPIRED"`, `"UNDETERMINED"`, `"AVAILABLE"`, `"EXERCISED"`, `"VALIDLY_EXERCISED"`, `"INVALIDLY_EXERCISED"`, `"CONFLICTED"`, `"DEFEATED"`. ## `PositionInstance` Type: `object`. Required: `id`, `template`, `modality`, `holder`, `status`, `createdBy`, `manifest`. | name | type-or-$ref | description | |---|---|---| | `activationEvent` | [`#/$defs/StableId`](#stableid) | — | | `beneficiary` | [`#/$defs/StableId`](#stableid) | — | | `counterparty` | [`#/$defs/StableId`](#stableid) | — | | `createdBy` | [`#/$defs/StableId`](#stableid) | — | | `holder` | [`#/$defs/StableId`](#stableid) | — | | `id` | [`#/$defs/StableId`](#stableid) | — | | `manifest` | [`#/$defs/StableId`](#stableid) | — | | `modality` | enum (4) | — | | `payload` | [`#/$defs/JsonValue`](#jsonvalue) | — | | `proof` | [`#/$defs/StableId`](#stableid) | — | | `status` | [`#/$defs/NormativeStatus`](#normativestatus) | — | | `statusHistory` | `array` | — | | `template` | [`#/$defs/StableId`](#stableid) | — | ## `ProofGraph` Type: `object`. Required: `nodes`, `roots`, `proofHash`. | name | type-or-$ref | description | |---|---|---| | `nodes` | `array` | — | | `proofHash` | [`#/$defs/Digest`](#digest) | — | | `roots` | `array` | — | ## `PriorityPathStep` Type: `object`. Required: `priorityRule`, `higher`, `lower`, `conditionWitnesses`. | name | type-or-$ref | description | |---|---|---| | `priorityRule` | [`#/$defs/StableId`](#stableid) | — | | `higher` | [`#/$defs/StableId`](#stableid) | — | | `lower` | [`#/$defs/StableId`](#stableid) | — | | `conditionWitnesses` | `array` | — | ## `ProofNode` Type: `object`. Required: `id`, `kind`, `conclusion`, `premises`. | name | type-or-$ref | description | |---|---|---| | `applicabilityStatus` | [`#/$defs/ApplicabilityStatus`](#applicabilitystatus) | — | | `attributes` | `object` | — | | `conclusion` | [`#/$defs/JsonValue`](#jsonvalue) | — | | `evidence` | `array` | — | | `id` | [`#/$defs/StableId`](#stableid) | — | | `interpretation` | [`#/$defs/StableId`](#stableid) | — | | `kind` | enum (20) | — | | `outcome` | `"DEFEATED"` | — | | `premises` | `array` | — | | `priorityPath` | `array` | — | | `rule` | [`#/$defs/StableId`](#stableid) | — | | `sourceAnchors` | `array` | — | | `substitution` | `object` | — | | `triggerStatus` | [`#/$defs/TriggerStatus`](#triggerstatus) | — | ## `StableId` Type: `string`. ## `StatusTransition` Type: `object`. Required: `status`, `at`, `proof`. | name | type-or-$ref | description | |---|---|---| | `at` | [`#/$defs/Instant`](#instant) | — | | `proof` | [`#/$defs/StableId`](#stableid) | — | | `reason` | `string` | — | | `status` | [`#/$defs/NormativeStatus`](#normativestatus) | — | ## `TemporalInterval` Type: `object`. Required: `startInclusive`, `endInclusive`. | name | type-or-$ref | description | |---|---|---| | `axis` | `string` | — | | `end` | oneOf (3) | — | | `endInclusive` | `boolean` | — | | `start` | oneOf (3) | — | | `startInclusive` | `boolean` | — | ## `TriggerStatus` Values: `"SATISFIED"`, `"NOT_SATISFIED"`, `"UNDETERMINED"`, `"CONFLICTED"`. ## `TruthStatus` Values: `"TRUE_ONLY"`, `"FALSE_ONLY"`, `"BOTH"`, `"NEITHER"`. ## `NormativeStatusSupport` Type: `object`. Required: `status`, `truthStatus`, `proof`. | name | type-or-$ref | description | |---|---|---| | `status` | [`#/$defs/NormativeStatus`](#normativestatus) | — | | `truthStatus` | [`#/$defs/TruthStatus`](#truthstatus) | — | | `valid` | [`#/$defs/TemporalInterval`](#temporalinterval) | — | | `proof` | `array` | — | ## `LegalTime` Definition `LegalTime`. ## `ResultKind` Values: `"DATA"`, `"COLLECTION"`, `"PROPOSITION"`, `"RULE_APPLICATION"`, `"NORM_POSITION"`, `"COMPLIANCE"`, `"CONSTRAINT"`, `"GRAPH"`. ## `EvidenceAcceptanceReport` Report of the acceptance phase. Present only when an evidence policy is selected; without a policy the document is byte-identical to before. Type: `object`. Required: `policy`, `profile`, `closureHash`, `decisions`, `documents`, `blocked`. | name | type-or-$ref | description | |---|---|---| | `policy` | [`#/$defs/StableId`](#stableid) | — | | `profile` | `string` | — | | `closureHash` | [`#/$defs/Digest`](#digest) | — | | `decisions` | `array` | — | | `documents` | `array` | — | | `blocked` | `array` | — | ## `EvidenceDecisionReason` Closed dictionary of acceptance reasons. Values: `"AUTHENTICATION_HASH_MISMATCH"`, `"AUTHENTICATION_MISSING"`, `"AUTHENTICATION_NOT_AVAILABLE"`, `"AUTHENTICATION_UNBOUND"`, `"EDGE_NOT_CURRENT"`, `"EDGE_POLICY_MISMATCH"`, `"EVIDENCE_NOT_AVAILABLE"`, `"EVIDENCE_NOT_CURRENT"`, `"EVIDENCE_NOT_DECLARED"`, `"FIELD_NOT_BOUND"`, `"FIELD_TYPE_MISMATCH"`, `"NEGATED_PROPOSITION"`, `"NO_ACCEPTANCE_RULE_APPLIED"`, `"RELATION_NOT_EXECUTABLE"`. ## `EvidenceDecision` Type: `object`. Required: `edge`, `evidence`, `relation`, `literal`, `decision`, `reasons`. | name | type-or-$ref | description | |---|---|---| | `edge` | [`#/$defs/StableId`](#stableid) | — | | `evidence` | [`#/$defs/StableId`](#stableid) | — | | `relation` | `string` | — | | `literal` | [`#/$defs/JsonValue`](#jsonvalue) | — | | `polarity` | enum (2) | — | | `decision` | enum (2) | — | | `reasons` | `array` | — | | `proof` | [`#/$defs/StableId`](#stableid) | — | | `blockers` | `array` | Present for support that reached the rules and was not accepted. | | `provenance` | [`#/$defs/EvidenceFactProvenance`](#evidencefactprovenance) | — | ## `EvidenceFactProvenance` Provenance of the case assertion whose literal equals the literal of the support (the smallest assertion id wins). Present only when that assertion was produced by an extractor (a was_generated_by provenance edge carrying an `extractor`) or carries a quote; earlier reports do not get the field. Type: `object`. Required: `origin`. | name | type-or-$ref | description | |---|---|---| | `origin` | enum (6) | Origin of the assertion; extraction is not a new origin. | | `evidence` | [`#/$defs/StableId`](#stableid) | First id of the assertion's evidence[], otherwise the target of its was_derived_from edge. | | `quote` | [`#/$defs/JsonValue`](#jsonvalue) | attributes.quote of the provenance edge, carried verbatim. | | `confidence` | [`#/$defs/JsonValue`](#jsonvalue) | Confidence of the extractor edge, carried verbatim; the core does not read it (the package evidence policy does, via its confidence field). | ## `EvidenceDocumentReport` Type: `object`. Required: `evidence`, `available`, `current`, `notes`. | name | type-or-$ref | description | |---|---|---| | `evidence` | [`#/$defs/StableId`](#stableid) | — | | `available` | `boolean` | — | | `current` | `boolean` | — | | `notes` | `array` | — | | `authentications` | `array` | — | ## `EvidenceBlockedAssertion` Assertion of a protected predicate that did not enter the support: the policy cannot be bypassed. Type: `object`. Required: `assertion`, `predicate`, `origin`, `reason`. | name | type-or-$ref | description | |---|---|---| | `assertion` | [`#/$defs/StableId`](#stableid) | — | | `predicate` | [`#/$defs/StableId`](#stableid) | — | | `origin` | `string` | — | | `reason` | `"PROTECTED_PREDICATE_REQUIRES_EVIDENCE"` | — | ## `ExecutionReceipt` Type: `object`. Required: `implementation`, `implementationConformance`, `receiptHash`. | name | type-or-$ref | description | |---|---|---| | `implementation` | `string` | — | | `implementationConformance` | `string` | — | | `startedAt` | [`#/$defs/Instant`](#instant) | — | | `finishedAt` | [`#/$defs/Instant`](#instant) | — | | `resourceUsage` | [`#/$defs/JsonObject`](#jsonobject) | — | | `signature` | [`#/$defs/JsonObject`](#jsonobject) | — | | `receiptHash` | [`#/$defs/Digest`](#digest) | — | ## `EvidenceBlockerConjunct` One conjunct of a policy rule's body and its state: an evaluation over the phase store. Type: `object`. Required: `kind`, `literal`, `trigger`. | name | type-or-$ref | description | |---|---|---| | `literal` | [`#/$defs/JsonValue`](#jsonvalue) | — | | `trigger` | enum (4) | — | | `detail` | `string` | — | | `kind` | `string` | Kind of conjunct: established \| not_known \| supported \| monotone \| refuted \| unknown \| guard. | | `stage` | [`#/$defs/WhyNotStage`](#whynotstage) | — | ## `BlockerHeadArgument` Computed argument of a candidate rule's head (`call`, arithmetic, `let`). Equality with the goal argument is not checked: the value must not be treated as established in the explanation; `term` is the head term itself as in the CLIR. Type: `object`. Required: `position`, `term`, `status`. | name | type-or-$ref | description | |---|---|---| | `position` | `integer` | — | | `term` | [`#/$defs/JsonValue`](#jsonvalue) | — | | `status` | enum (1) | — | | `detail` | `string` | — | ## `BlockerContinuation` Continuation of the goal substitution by store witnesses in a `why_not` rule blocker: `bindings` are the variables bound by witnesses (not by the goal) with their values; `conjuncts` mark every body conjunct under the continuation; `trigger` and `detail` summarise this continuation only — there is no verdict over continuations. Type: `object`. Required: `bindings`, `trigger`, `detail`, `conjuncts`. | name | type-or-$ref | description | |---|---|---| | `bindings` | `object` | — | | `trigger` | enum (4) | — | | `detail` | `string` | — | | `conjuncts` | `array` | — | ## `BlockerDefeat` Defeat of the blocker rule's application concluding the goal, read from the proof graph of the same document: `application` and `defeat` are proof node ids; `reason` is the defeat node's `attributes.reason`; `opponentRules` are the rules of opponent applications among the defeat node's premises (sorted, unique); `priorityRules` are the `priorityRule` of the defeat node's `priorityPath` steps in written order. Type: `object`. Required: `application`, `defeat`, `reason`, `opponentRules`, `priorityRules`. | name | type-or-$ref | description | |---|---|---| | `application` | [`#/$defs/StableId`](#stableid) | — | | `defeat` | [`#/$defs/StableId`](#stableid) | — | | `reason` | enum (3) | — | | `opponentRules` | `array` | — | | `priorityRules` | `array` | — | ## `WhyNotStage` Round of an executable `stage` named by a `why_not` report: same shape as `attributes.stage` of a `rule_application` node (the `index` is the index value — integer or ISO date — not a term) when the index lies in the domain, and `{name, index, outsideDomain: true}` outside it. On a rule blocker it names the round of the goal; on a conjunct, the round of the conjunct literal after substitution. Written by `why_not` only, and only in programs with an executable `stage`. Type: `object`. Required: `name`, `index`. | name | type-or-$ref | description | |---|---|---| | `name` | `string` | — | | `index` | `integer` or `string` | — | | `rank` | `integer` | — | | `outsideDomain` | `true` | — | ## `EvidenceBlocker` Breakdown of the NO_ACCEPTANCE_RULE_APPLIED reason for one policy rule. Same shape as `why_not` blockers; `headArguments` appears only for a rule with a computed head argument, and is written non-empty. `strength`, `continuations`, `truncated` and `defeats` belong to `why_not` rule blockers only: policy blockers and transition blockers never carry them; `continuations` and `defeats` are written non-empty, `truncated` only as `true`. `stage` is likewise `why_not`-only and appears only in programs with an executable `stage`. Type: `object`. Required: `rule`, `applicability`, `trigger`, `conjuncts`. | name | type-or-$ref | description | |---|---|---| | `rule` | [`#/$defs/StableId`](#stableid) | — | | `headArguments` | `array` | — | | `stage` | [`#/$defs/WhyNotStage`](#whynotstage) | — | | `applicability` | enum (3) | — | | `trigger` | enum (4) | — | | `detail` | `string` | — | | `conjuncts` | `array` | — | | `strength` | enum (3) | — | | `continuations` | `array` | — | | `truncated` | `true` | — | | `defeats` | `array` | — |