# Vocabulary decision record: ParcelKind as a closed enum

> Filled example. This record explains one naming choice in the fictional
> parcel fixtures. The engine never reads this file: it explains why a
> word means what it means, not a package format.

- Term: ParcelKind
- Package: labparcels.iface
- Date: 2026-10-03
- Author: Lab team (fictional)
- Status: accepted

## 1. Context

The fee rules charge one amount per use class, and the registry rules
need a recorded kind before anything counts as registered. A shared word
for the use class had to live in the vocabulary package so both rules
could join on the same closed choice.

## 2. Options considered

| Option | Shape | Rejected because / chosen because |
|---|---|---|
| A: ParcelKind enum | new enum with three members | chosen: closed choice, matches the source classes |
| B: free text field | Text field on Parcel | rejected: open text cannot be joined on reliably |

## 3. Decision

ParcelKind is a closed enum with three members: residential, commercial,
and garden. It covers the use class of a parcel and excludes anything
else: no free-text kinds, no per-consumer spellings. The enum lives on
no parent type; consumers join fee and registration facts through it.

## 4. Consequences

- Consumers affected: labparcels.registry, labparcels.fees, labparcels.case1
- Labels needed: English unofficial wording for the enum and each member
- Alias or notice period: none; this is a new term with no old name
- Follow-up work: record the term in the public vocabulary contract

## 5. Effect sketch

Show the declaration shape before and after (illustration only; the
package source stays the authority):

```text
none
```

```text
pub enum ParcelKind {
    label en unofficial "parcel kind";
    residential;
    commercial;
    garden;
}
```

## 6. Review

- Reviewer: Lab team (fictional)
- Date: 2026-10-03
- Outcome: accepted
- Notes: none
