Shared template selection with producer adoption still incomplete
Context
Documents need consistent explicit, configured and built-in choices. Books supplies the selector, while each producer must adopt it.
Decision
The shared pure selector considers an explicit choice, an applicable unit choice or statement default, then built-in or download-format fallback. Missing, mismatched or inactive explicit choices are refused; inactive content is not rendered by this resolver.
Alternatives Considered
Have every producer choose independently. Separate selectors could give the same unit inconsistent document behavior.
Allow inactive receipt, statement and download content. The implementation rejects that legacy behavior, but the product rationale remains proposed rather than confirmed.
Consequences
Invoice rendering is an observed adopter; complete producer adoption is not established, and statement selection differs.
The selector’s tests establish its own behavior rather than proving that every producer uses it.