Most modules are not breaking because of bad code.
They are breaking because too many decisions are exposed.
An opinionated module removes choices.
A flexible module adds choices.
Every added variable increases the number of possible configurations.
Every configuration is another place for drift, inconsistency, or failure.
This is not a reuse problem.
This is a control problem.
The real question is simple:
Where should configuration decisions live?
If you push decisions into every root module, you create entropy.
If you centralize decisions inside modules, you create consistency.
This lesson breaks that boundary.

