Example

package User;
use Ernst;

has 'username' => (
    is          => 'ro',
    isa         => 'Str',
    traits      => ['MetaDescription'],
    description => {
        type             => 'String',
        traits           => [qw/CSS TT::Snippet Validation Collection/],
        max_length       => 64,
        expected_length  => 40,
        unique_attribute => 1,
        css_id           => '#openid',
        snippet_class    => 'MyApp::Snippet::OpenID'
        validate         => [
            { regexp => qr{^http://},
              error  => 'Your OpenID must start with http://', }
        ],
    },
);
continued...