Introducing Moops
Moops is sugar for writing object-oriented Perl. It provides similar syntax to MooseX::Declare and Stevan Little's p5-mop-redux. It's some glue between Moo, Type::Tiny, Function::Parameters and Try::Tiny, but for those occasions when you want the backing of a meta object protocol, allows you to easily swap Moose (or even Mouse) in place of Moo with very minimal changes.
Here's an example of a complete, usable class definition in Moops:
use Moops; class Person :ro { has first_name => (isa => Str); has last_name => (isa => Str); }