Why this matters
Avoids duplication and inconsistent rules.
Centralize validation in dedicated functions/objects and reuse; return typed errors.
Avoids duplication and inconsistent rules.
Side-by-side examples engineers can pattern-match during review.
if (name.isBlank()) error("bad") // repeatedobject Validators { fun name(n: String) = require(n.isNotBlank()) { "name required" } }inline ifs in multiple placesValidators.name(name)From the same buckets as this rule.