In ADR-0003 Static factory method for Program Management plugin, I proposed to follow a way to build domain objects where it was impossible to build them without running checks. But today, after 3 years, I call this pattern into question. It is very rigid and very hard to do right. I'm not sure it is worth it, and would like to share my conclusions in a new ADR to revoke this decision.