# Corpus charter: Parcel Registry Lab

> Filled example. This record describes the fictional parcel fixtures used
> across the lab pages. The engine never reads this file: it records team
> intent, not a package format. Nothing here replaces the manifest, the
> lockfile, or a recorded engine run.

- Area: Parcel Registry Lab
- Owner: Lab team (fictional)
- Status: active
- Last reviewed: 2026-10-03
- Toolchain on record: law 0.1.1 (full output in the verification fences)

## 1. Scope

In scope (what this area answers):

- who holds which parcel, and whether a parcel counts as registered
- what fee a registered parcel owes by its recorded kind
- whether an appeal arrived inside its window
- whether a recorded owner may transfer a parcel to a new owner

Out of scope (what this area never answers; say where those go instead):

- real land titles -> the jurisdiction packages that own real registry text
- calendar arithmetic beyond fixed day windows -> the shared calendar packages

## 2. Package set

| Package id | Version pinned | Role |
|---|---|---|
| labparcels.iface | 0.1.0 | shared vocabulary: entities, relations, enums only |
| labparcels.registry | 0.1.0 | source package: pinned text plus executable rules |
| labparcels.fees | 0.2.0 | consumer: the fee each registered parcel owes |
| labparcels.appeals | 0.1.0 | consumer: appeal timeliness against a fixed window |
| labparcels.case1 | 0.1.0 | worked case over the locked world |

Naming rule: all ids start with the lab prefix; new packages need
owner approval before they join the set above.

## 3. Source rules

- Every source package pins its text before its rules count as anchored:
  each fragment carries its bytes, language, and standing.
- One revision in two languages is two editions; correspondence between
  them is declared explicitly, never assumed.
- The lab fixtures use original fictional text only; real act text is
  never pasted into worked examples.

## 4. Vocabulary rules

- Shared words live in exactly one vocabulary package; consumers import
  them instead of redeclaring.
- Every public declaration carries a label with its language and standing
  (official, unofficial, or translation).
- Identity is stable: renames keep the old name working or ship with a
  recorded decision (see the filled vocabulary decision record).
- Public vocabulary contract for this area: the filled contract for
  labparcels.iface at 0.1.0.

## 5. Dependency rules

- Every dependency is pinned to an exact version; the lockfile records the
  full closure with content hashes.
- Registries are addresses, not authorities: a package is proved by its
  bytes against its recorded hash.
- Intra-package references use explicit blocks regenerated per package;
  mass rewrites across packages are forbidden in a shared tree.
- Shared dependency changes travel with a filled change record (see the
  filled record moving the fees consumer to registry 0.2.0).

## 6. Review ladder

Records move through draft, reviewed, verified, approved, disputed. Only
the approved standing admits a fragment as verified. Each step needs a
named reviewer, a date, and the recorded engine runs listed in the filled
review of labparcels.registry at 0.1.0.

## 7. Release rules

- Releases follow the filled release record: version choice, lock
  refresh, recorded verification runs, publication, announcement.
- Language lines never mix inside one world: one closure, one semantics line.
- The lab ships no canon profile; if it ever does, the profile pins the
  package set plus calendars as a single versioned artifact.

## 8. Verification commands on record

```text
law 0.1.1
semantics: law.core/0.2
std for language 0.2: 0.2.0
lawql: lawql/1 (queryResult 0.1)
binary hash: sha256:cfa7c17232f2dc594e665dbbf2ad3c154675797ef4be07ef7d758c9abfb80a28
```

```text
law test labparcels.registry: world labparcels.registry, labparcels.iface
  ok   [labparcels.registry#authored] tests/01-registered-ok.lawtest / urn:lab:parcels:registry:registered-ok
  ok   [labparcels.registry#authored] tests/02-registered-missing-kind.lawtest / urn:lab:parcels:registry:registered-missing-kind
  ok   [labparcels.registry#authored] tests/03-transfer-ok.lawtest / urn:lab:parcels:registry:transfer-ok
  ok   [labparcels.registry#authored] tests/04-transfer-stranger.lawtest / urn:lab:parcels:registry:transfer-stranger
total: 4 checked, 4 passed, 0 failed, 0 not run; code 0
```

```text
  ✓ pinning.toml → sources.law [en-US] (2 articles)
```

## 9. Companion records

| Record | Location (package id plus file name, no directory paths) |
|---|---|
| Public vocabulary contract | labparcels.iface, filled public-vocabulary-contract |
| Vocabulary decisions | labparcels.iface, filled vocabulary-decision-record |
| Dependency changes | labparcels.fees, filled shared-dependency-change |
| Reviews | labparcels.registry, filled review-checklist |
| Releases | labparcels.registry, filled release-checklist |
