Some items are the full identity, others need $type of $item, others aren't items at all ((un)holy water, uncharged). These should all be actual item identities, and things that aren't identities should be returned some other way.
Maybe this should actually just return NetHack::Item instances directly?