An Ability classifies what operations are permitted for a given type
Ability
Allows values of types with this ability to be copied
Allows values of types with this ability to be dropped.
Allows the type to serve as a key for global storage operations
Allows values of types with this ability to exist inside a struct in global storage