Declarative template-based framework for verifying that objects meet structural requirements, and auto-composing error messages when they do not.