Get plan and bundle tests passing.

Discoverd that Moo strongly prefers `exends` over `use parent`: otherwise it
can miss out on inherited attributes! So we replace all those.

Otherwise, mostly updating types and removing required attribute params where
attributes have default values.