The Perl 5 module MooseX::Types::Structured provides structured type constraints for Moose. A structured type constraint is a standard container Moose type constraint, such as an ArrayRef or HashRef, which has been enhanced to allow you to explicitly name all the allowed type constraints inside the structure.