the same terms as the perl 5 programming language system itself
make simple lightweight record-like structures that make sounds like cows
The '-isa' feature for setting superclasses is now called '-extends'.
Broken and undocumented sigils feature is now working, documented and tested.
New bang postfix sigil, indicating a required attribute.
Workaround strange closure bug in Perl < 5.14.
Overload a lot of operations on structs.
The 'object_id' method is now called 'OBJECT_ID'.
Allow structs to consume roles using '-with' option.
Constructor is now strict; it will croak if passed hash keys it doesn't recognise.
Dropped 'object_id' alias for 'OBJECT_ID'.
Allow namespace::clean behaviour to be avoided via a '-retain' flag.
Provide '-class' feature (currently tested for but not documented).
Fix an internal issue in MooX::Struct::Processor, whereby it would ignore attributes inherited from the default base class when building the FIELDS method.
Moo-style constructor is no longer strict. (This may change back!)
Attributes inherited from roles are no longer included in FIELDS.
Processing flags in EXTEND method could cause infinite loop.
Passing objects overloading hash dereference to the constructor was supposed to be supported; now it actually works.
Usage with Data::Printer was causing an exception related to prototypes.
Stop relying on hash order to pass t/14trace.t.
Eliminate dependency on Scalar::Does. (Use Type::Tiny instead, which Scalar::Does depended on anyway.)
Eliminate dependency on Sub::Install. (Use Exporter::Tiny instead, which Scalar::Does depended on anyway.)
Remove stray usage of Scalar::Does in test suite.
Support for Data::Printer 0.99 trial versions.
Tidy up MooX::Struct namespace using namespace::autoclean.
The TYPE_TINY method now returns a type constraint with a coercion from ArrayRef|HashRef.