Paradigm
Prefer a pure domain core with explicit resource capabilities at its edges.
Native functional design
Why
Rust already has value types and explicit ownership. Applying the functional policy should use those primitives rather than imitate a JavaScript object model.
Rules
MUST separate domain transformations from I/O, logging, clocks, and environment access.[review]
MUST supply dependencies through explicit parameters or resource-owning adapters.[review]
MUST prefer functions and value composition over application inheritance or mutable service state.[review]
MUST use structs and enums to express domain values and trait contracts to express capabilities.[review]
MUST prefer an iterator transformation when it makes the operation clearer.[review]
MUST keep mutable clients and handles confined to their adapter lifetimes.[review]
MUST use immutable bindings for domain data.[review]
[review]
The compiler checks types and ownership. Pure tests and review verify effect isolation and capability design.
Enforcement
The compiler checks types and ownership. Pure tests and review verify effect isolation and capability design.