use MooseX::Declare; class Utils::File::Macro extends Utils::File::Section { use Utils::TypeConstraints; has '+id' => ( default => 'macro' ); # Just adding an extra layer of validation method add(DefaultEntity|MacrosEntity $entity) { $self->SUPER::add($entity); } }