# Two selection profiles, one dispute (synthetic)

The same fictional rivalry — Narrow vs Broad over a second permit — under
two process contracts. The two packages are byte-identical except the
`selection` line (plus package name and lock): `mandatory` declares
`selection exactly_one`, `open` declares `selection any_of`. Every scenario
in both suites asserts the same three facts on the same applicant; only the
selected reading — or its absence — varies.

## Runs

Tool `law` 0.1.0, semantics law.core/0.2 (published build):

```sh
$ law test docs/handbook/files/fixtures/selection-profiles/mandatory
law test demo.handbook.selection_mandatory: world demo.handbook.selection_mandatory
  ok   [demo.handbook.selection_mandatory#authored] tests/selection.lawtest / narrow on full facts
  ok   [demo.handbook.selection_mandatory#authored] tests/selection.lawtest / broad on full facts
  ok   [demo.handbook.selection_mandatory#authored] tests/selection.lawtest / no selection — disputed flagged
  ok   [demo.handbook.selection_mandatory#authored] tests/selection.lawtest / no selection — independent answers
total: 4 checked, 4 passed, 0 failed, 0 not run; code 0
$ law test docs/handbook/files/fixtures/selection-profiles/open
law test demo.handbook.selection_open: world demo.handbook.selection_open
  ok   [demo.handbook.selection_open#authored] tests/selection.lawtest / narrow on full facts
  ok   [demo.handbook.selection_open#authored] tests/selection.lawtest / broad on full facts
  ok   [demo.handbook.selection_open#authored] tests/selection.lawtest / no selection — disputed silent
  ok   [demo.handbook.selection_open#authored] tests/selection.lawtest / no selection — independent answers
total: 4 checked, 4 passed, 0 failed, 0 not run; code 0
```

## What the pair shows

- On identical full facts, Narrow answers FALSE_ONLY and Broad answers
  TRUE_ONLY in both profiles: the selection alone flips the answer, and a
  mandatory contract did not pick a winner — both readings stay runnable.
- With nothing selected the profiles diverge exactly once. Mandatory
  flags the disputed question `INTERPRETATION_REQUIRED`; open leaves it
  `NEITHER` with status `COMPUTED` — silence, not a flag.
- The independent filing question answers `TRUE_ONLY` with `COMPUTED`
  unselected in both profiles: the flag never touched it. The mandatory
  contract refuses the dependent question, not the whole document.

Locks were written by the pinned tool itself
(`law engine lock . --write`); both suites pass on first run.
