A simple, convenient way to represent domain objects, leverage domain knowledge, and add runtime validation in your code base.