ItemMeta extends Metadatable

This replaces the ConfigurationSection-based getCustomData() method.

The metadata store will only accept a new PersistentMetadataValue
class, which encapsulates and hopefully clarifies the notion that only
"persistable" data can be stored here. This includes Lists, Maps, most
basic types, and ConfigurationSerializable objects.