Consequences
Introducing specifications into a domain model deepens team's understanding of the domain and
uncovers hidden opportunities to increase business value.
Be mindful of the fact that creating irrelevant or weak concepts only clutters the system's core responsibilities.
Thus, Specification is not a replacement for every conditional statement we may have in our code.