# Arxo counterfactual input 0.1 Finite, hash-pinned candidate worlds for a counterfactual declaration: alternative inputs the search may explore. ## Versions Accepted `schemaVersion`: `law.core.counterfactual-input/0.1`. ## Top-level fields | name | type-or-$ref | required | description | |---|---|---|---| | `schemaVersion` | `"law.core.counterfactual-input/0.1"` | yes | — | | `kind` | `"counterfactual-input"` | yes | — | | `id` | [`#/$defs/StableId`](#stableid) | yes | — | | `programHash` | [`#/$defs/Digest`](#digest) | yes | — | | `caseHash` | [`#/$defs/Digest`](#digest) | yes | — | | `counterfactual` | [`#/$defs/StableId`](#stableid) | yes | — | | `costModel` | [`#/$defs/StableId`](#stableid) | yes | — | | `candidates` | `array` | yes | — | | `contentHash` | [`#/$defs/Digest`](#digest) | yes | — | | `metadata` | `object` | no | — | ## Enumerations | location | values | |---|---| | `properties/schemaVersion` | `"law.core.counterfactual-input/0.1"` | | `properties/kind` | `"counterfactual-input"` | | `$defs/SetConst/properties/kind` | `"setConst"` | | `$defs/AddAssertion/properties/kind` | `"addAssertion"` | | `$defs/RemoveAssertion/properties/kind` | `"removeAssertion"` | | `$defs/SetContext/properties/kind` | `"setContext"` | ## Raw schema [`https://law.arxo.io/schema/counterfactual-input.schema.json`](https://law.arxo.io/schema/counterfactual-input.schema.json) ## `StableId` Type: `string`. ## `Digest` Type: `string`. ## `DecimalString` Type: `string`. ## `JsonValue` Definition `JsonValue`. ## `SetConst` Type: `object`. Required: `kind`, `target`, `value`. | name | type-or-$ref | description | |---|---|---| | `kind` | `"setConst"` | — | | `target` | [`#/$defs/StableId`](#stableid) | — | | `value` | [`legal-ir.schema.json#/$defs/Term`](/protocols/schemas/legal-ir/#term) | — | ## `AddAssertion` Type: `object`. Required: `kind`, `assertion`. | name | type-or-$ref | description | |---|---|---| | `kind` | `"addAssertion"` | — | | `assertion` | [`legal-ir.schema.json#/$defs/Assertion`](/protocols/schemas/legal-ir/#assertion) | — | ## `RemoveAssertion` Type: `object`. Required: `kind`, `assertion`. | name | type-or-$ref | description | |---|---|---| | `kind` | `"removeAssertion"` | — | | `assertion` | [`#/$defs/StableId`](#stableid) | — | ## `SetContext` Type: `object`. Required: `kind`, `target`, `value`. | name | type-or-$ref | description | |---|---|---| | `kind` | `"setContext"` | — | | `target` | `string` | — | | `value` | [`#/$defs/JsonValue`](#jsonvalue) | — | ## `Operation` Definition `Operation`. ## `Candidate` Type: `object`. Required: `id`, `cost`, `operations`. | name | type-or-$ref | description | |---|---|---| | `id` | [`#/$defs/StableId`](#stableid) | — | | `cost` | [`#/$defs/DecimalString`](#decimalstring) | — | | `operations` | `array` | — | | `metadata` | `object` | — |