- isa and is we've covered.
- lazy tells Moose to not bother getting the value from default or builder until the value is actually used.
- default can be the default value as a literal, or a subroutine reference that will return the default.
- builder is much like default, except it is a string which is the name of a class method that will return the default value. With this syntax, the builder is overridable by other classes.
- writer, reader, clearer are pretty straight forward. This specifies the names of the methods that will be created to set, get, and clear the value from the object.
- required specifies that the value MUST be specified at object instantiation time or be provided by a default or builder.
- predicate returns true if the attribute's value has been initialized.
- trigger is a subroutine reference that is called each time the attribute is set.