# Arxo canon profile 0.1 A named, dated, and hashed composition of the norm library: the boundary of permitted dependencies for a build. Not a package and not a case — it holds no nodes and no facts, only names with versions and hashes, itself pinned by contentHash (sha256 of the canonical bytes excluding that field). Empty arrays are omitted; a composition with neither packages nor profiles is refused. ## Versions Accepted `schemaVersion`: `law.profile/0.1`. ## Top-level fields | name | type-or-$ref | required | description | |---|---|---|---| | `schemaVersion` | `"law.profile/0.1"` | yes | — | | `id` | `string` | yes | Profile name; follows the package-name grammar. | | `version` | `string` | yes | — | | `kind` | enum (4) | yes | Profile kind; descriptive, not part of the computation, but part of the contentHash. | | `title` | `string` | yes | — | | `asOf` | `string` | yes | Composition date. It does not replace the legal time of a case or the dated editions of an act. | | `language` | `string` | yes | Language line the profile belongs to, as a language name and version. | | `semanticsRevision` | `string` | yes | Exact semantics revision the composition was built against. | | `packages` | `array` | no | A set sorted by name; one version per name. | | `profiles` | `array` | no | Included profiles; a set keyed by id; resolution is transitive. | | `calendars` | `array` | no | Pinned calendar datasets in the calendar-dataset resource form; a set keyed by node. | | `expansions` | `array` | no | Expansion-definitions packages available to the composition; a set keyed by name. | | `contentHash` | `string` | yes | — | ## Enumerations | location | values | |---|---| | `properties/schemaVersion` | `"law.profile/0.1"` | | `properties/kind` | `"jurisdiction"`, `"discipline"`, `"tradition"`, `"custom"` | ## Raw schema [`https://law.arxo.io/schema/profile.schema.json`](https://law.arxo.io/schema/profile.schema.json)