in reply to Re^2: Moo different parameters for constructor
in thread Moo different parameters for constructor

Also, How can we validate constructor args?

There's several different ways to do this. The code I showed already uses Type-Tiny, see its documentation on how to use it for tighter constraints, and see the documentation for isa in Moo. I also mentioned MooX::StrictConstructor above.