The has function is overworked ... With plain bless, parameters for object creation and object attributes were totally independent (which means you have to code it all by hand), with Moo* everything needs to occur in has (or as a fallback munged in BUILDARGS).
They're totally independent for Cor. has $data; only declares instance data. That's all. Absolutely nothing else. The optional attributes describe other aspects of the class. I worked very hard to make sure that was correct.
As an aside, even pure-Perl Cor will be faster that Moo/se, but I can't say much more about that right now.