in reply to (Moose/Hash): Can't call method "kv" on unblessed reference

Okay, I figured it out by carefully examining the source-code of the native_traits/trait_hash.t test of this module.

The example should read:   (with the strikeout omitted ...)
for my $pair ( $object->options->kv ) {

Or, more appropriately to a real-world situation (as you did suggest):

for my $pair ( $object->options->option_pairs ) {

The accessor makes it possible to iterate through the values of, say, the options property of the object, by repeated calls to this method of the object ... it is not a method of the property itself.   (AFAIK, Moose has no such concept.)

The use of handles is, of course, the Right Goodness™ because, if (as you well might) you have more than one such property, you’ll need to define distinct accessor-names corresponding to each one and for that you of course must use handles.   (That’s of course what it is for.)