Design notes#
Five pages on decisions a space declaration forces, and what each option costs. The user guide shows the mechanisms running; these pages are about choosing between them.
They can be read in any order. The first two have the largest effect on the resulting space.
Which of bool + .when(), .choice(), .space() and a bool-per-item subset
describes the situation, and why the choice is permanent.
Declaring a value whose content is a structure, where the invariant lives, and what moving it inside a custom type costs.
What margins, remaining_domain narrowing and bound-origin tightening cost as
a predicate becomes opaque.
Why dense combinatorial constraints collapse the acceptance rate, the two remedies that apply, and the one that does not.
Named whole configurations against per-parameter defaults, and why deriving one from the other beats restating it.