# Parameter Interactions
### Scope
- **Purpose**: Cross-parameter constraints and dependency rules.
- **Responsibility**: Interaction table, validation order, mutual exclusions, and combined semantics.
- **In Scope**: Pairwise and group-level parameter interactions.
- **Out of Scope**: Individual parameter details (→ `param/`), group membership (→ `param_group/`).
How clv parameters interact when combined. See [param/](param/readme.md) and [param_group/](param_group/readme.md) for individual parameter specifications.
### Interaction Table
| `dry::1` + `force::1` | Precedence | `dry::` wins; action previewed, not executed |
| `dry::1` + `force::0` | Independent | Dry-run preview shown; `force::` has no effect |
| `dry::0` + `force::1` | Independent | Confirmation skipped; command executes |
| `key::` + `value::` | Required pair | Both required for `.settings.set`; either alone is invalid |
| `v::0` + `format::json` | Independent | JSON output rendered at minimal verbosity; required keys not stripped |
| `v::2` + `format::text` | Independent | Text output rendered with extra diagnostic lines |
| `version::` + `force::1` | Additive | Installs specified version; skips "already installed" guard |
| `version::` + `dry::1` | Additive | Shows install plan for specified version; no install occurs |
### Required Combinations
`.settings.set` requires both `key::` and `value::`:
```
.settings.set key::theme value::dark -- both present: valid
.settings.set key::theme -- value:: missing: exit 1
.settings.set value::dark -- key:: missing: exit 1
```
### Precedence Rules
When `dry::1` and `force::1` are both present, `dry::` takes precedence:
```
.version.install version::stable dry::1 force::1
-- Output: dry-run preview of install
-- Action: no install executed (dry wins)
```
### Independent Parameters
`v::` and `format::` operate on orthogonal dimensions (depth vs structure) and do not interact:
- `v::0` controls how many fields are shown
- `format::json` controls the structure of those fields
- Combining them applies both transformations independently