lemma 0.9.3

A pure, declarative language for business rules.
**Data: constraint definitions, not placeholders**

`data` declares variables. Constraints define validity. Type-only `data` (no value) is an input slot. Use real domain values. Never `"TODO"` or dummy placeholders.

For which inputs a rule still needs at runtime, call MCP `guide` with no topic (evaluate guide): `list` → `show` once → `evaluate` → ask one `missing_data` field → repeat. Load `guide` topic `full` only when authoring new specs. `show` is the static catalog — not a required-input checklist. `-> help` is the literal CS ask string; do not replace the question with a different one.

**Example D — typed data (coffee order)**

```lemma
spec coffee_order

data money: measure
  -> decimals 2
  -> unit eur 1.00
  -> unit gbp 1.17
  -> unit usd 0.84
  -> minimum 0 eur

data product: text
  -> option "espresso"
  -> option "latte"
  -> option "cappuccino"
  -> option "mocha"

data size: text
  -> option "small"
  -> option "medium"
  -> option "large"

data age: number
  -> maximum 100
  -> minimum 0

data number_of_cups: number
  -> maximum 10

data has_loyalty_card: boolean
```

- `age`, `number_of_cups`: input slots (type-only + bounds)
- `money`: custom measure type with units, decimals, minimum
- `product`, `size`: text enumeration via `-> option` (prefer over veto for static sets)

**Example E — data patterns**

Input slot:
```lemma
spec intake

data customer_age: number -> minimum 0 -> maximum 120
```

Fixed policy constant:
```lemma
spec fiscal_policy

data tax_rate: 21%
```

Text enumeration:
```lemma
spec membership

data status: text
  -> option "active"
  -> option "inactive"
```

Typed alias:
```lemma
spec accounts

data money: measure -> unit eur 1.00

data wallet: money -> minimum 0 eur
```

With help text (literal CS ask string):
```lemma
spec payroll

data pay_period: text
  -> option "month"
  -> option "week"
  -> help "How often you are paid."
```

Boolean with usual-case suggest:
```lemma
spec returns

data item_damaged: boolean
  -> suggest false
  -> help "Item damaged?"
```

Constraints chain: `-> minimum`, `-> maximum`, `-> option`, `-> unit`, `-> decimals`, `-> suggest`, `-> help`, etc. Details in Reference.