Markdown for LLMs
Arxo canonical law.lock 0.3
The source Markdown for this article. Copy it into your assistant or download it as a text file.
# Arxo canonical law.lock 0.3 Reference page for the `lockfile.schema.json` JSON schema. ## Versions No accepted version marker is declared. ## Top-level fields | name | type-or-$ref | required | description | |---|---|---|---| | `lockVersion` | enum (3) | yes | — | | `languageSemantics` | `string` | yes | — | | `root` | [`#/$defs/LockedPackageRef`](#lockedpackageref) | yes | — | | `packages` | `array` | yes | — | | `dependencyEdges` | `array` | yes | — | | `editionsAsPresented` | [`evaluation.schema.json#/$defs/LegalTime`](/protocols/schemas/evaluation/#legaltime) | no | Root `[editions] as_presented` of a dated world. Included in the resolution hash; case preparation passes it as the transport field `editions_as_presented`. | | `resolutionHash` | [`#/$defs/Digest`](#digest) | yes | — | | `resources` | `array` | no | — | | `expansions` | `array` | no | Pinned expansion-definition packages. A compile-time dependency of the consumer: included in the resolution hash, never becomes a semantic import of the compiled form. | | `semanticLayer` | enum (4) | no | Semantic layer of the build. The field is named `semanticLayer`, not `layer`, because the short name is taken by the package profile of ontological packages. The layer is a ceiling: declaring higher than the inferred value is allowed, lower is rejected (LDC-E8101). In the lockfile it is the EFFECTIVE build layer: the maximum over the root and all pinned dependencies. | | `profile` | `object` | no | Pinned canon profile: `packages` is the full expansion of profile B; the resolution hash covers the block. | ## Enumerations | location | values | |---|---| | `properties/lockVersion` | `"0.1"`, `"0.2"`, `"0.3"` | | `properties/semanticLayer` | `"L0"`, `"L1"`, `"L2"`, `"L3"` | | `allOf/0/if/properties/lockVersion` | `"0.2"` | | `allOf/1/if/properties/lockVersion` | `"0.3"` | | `$defs/LockedExpansion/properties/expansionProfile` | `"law.expansion/0.1"`, `"law.expansion/0.2"` | | `$defs/LockedResource/properties/kind` | `"parameter-dataset"`, `"decision-table"`, `"label-overlay"`, `"calendar-dataset"`, `"document"`, `"case-snapshot"` | | `$defs/LockedResource/properties/capability` | `"compile_time"`, `"presentation"`, `"law.calendar/0.1"`, `"evidence"`, `"law.case-export/0.1"` | ## Raw schema [`https://law.arxo.io/schema/lockfile.schema.json`](https://law.arxo.io/schema/lockfile.schema.json) ## `LockedExpansion` Type: `object`. Required: `consumer`, `alias`, `name`, `version`, `entry`, `expansionProfile`, `contentHash`. | name | type-or-$ref | description | |---|---|---| | `consumer` | [`#/$defs/PackageName`](#packagename) | — | | `alias` | `string` | — | | `name` | [`#/$defs/PackageName`](#packagename) | — | | `version` | [`#/$defs/Version`](#version) | — | | `entry` | `string` | — | | `expansionProfile` | enum (2) | — | | `contentHash` | [`#/$defs/Digest`](#digest) | — | ## `Digest` Type: `string`. ## `PackageName` Type: `string`. ## `Version` Type: `string`. ## `Feature` Type: `string`. ## `LockedResource` Type: `object`. Required: `id`, `kind`, `path`, `contentHash`, `capability`. | name | type-or-$ref | description | |---|---|---| | `id` | `string` | — | | `kind` | enum (6) | — | | `path` | `string` | — | | `contentHash` | [`#/$defs/Digest`](#digest) | — | | `capability` | enum (5) | Resource roles. A3 resources participate in compilation (compile_time); label overlays are a presentation layer outside the compiled form (presentation); calendar datasets are resolved at execution time (calendar form); case documents are evidence support whose bytes are checked against content_hash (evidence). | ## `LockedPackageRef` Type: `object`. Required: `name`, `version`, `namespace`, `contentHash`. | name | type-or-$ref | description | |---|---|---| | `name` | [`#/$defs/PackageName`](#packagename) | — | | `version` | [`#/$defs/Version`](#version) | — | | `namespace` | `string` | Package namespace, a URN. The `format` keyword of Draft 2020-12 is only an annotation, so the shape is enforced by `pattern`. | | `contentHash` | [`#/$defs/Digest`](#digest) | — | ## `LockedPackage` Type: `object`. Required: `name`, `version`, `namespace`, `contentHash`, `features`. | name | type-or-$ref | description | |---|---|---| | `name` | [`#/$defs/PackageName`](#packagename) | — | | `version` | [`#/$defs/Version`](#version) | — | | `namespace` | `string` | Package namespace, a URN. The `format` keyword of Draft 2020-12 is only an annotation, so the shape is enforced by `pattern`. | | `contentHash` | [`#/$defs/Digest`](#digest) | — | | `editorSourceMapHash` | [`#/$defs/Digest`](#digest) | Optional editor-only source-map sidecar for this pinned dependency. Its bytes are delivered as deps/<name>.editor-source-map.json and must identify this exact CLIR package before an editor may expose authored locations. | | `questionCatalogHash` | [`#/$defs/Digest`](#digest) | Optional pinned questions-catalog sidecar, installed as deps/<package>.questions.json for case cards. | | `taskGuideCatalogHash` | [`#/$defs/Digest`](#digest) | Optional pinned task-guides catalog sidecar, installed as deps/<package>.task-guides.json for task guides of the dependency. Metadata only: it does not affect CLIR or evaluation semantics; the resolution hash covers the pin. | | `registryId` | `string` | — | | `resolverUri` | `string` | Where the package was resolved from. `pattern` requires at least a URI scheme; it is not a full URI parser. | | `features` | `array` | — | | `signature` | `object` | — | ## `DependencyEdge` Type: `object`. Required: `from`, `to`, `requested`, `resolved`, `features`. | name | type-or-$ref | description | |---|---|---| | `from` | [`#/$defs/PackageName`](#packagename) | — | | `to` | [`#/$defs/PackageName`](#packagename) | — | | `requested` | [`#/$defs/Version`](#version) | — | | `resolved` | [`#/$defs/Version`](#version) | — | | `features` | `array` | — |