Depends on Component "ItemInstances"
If an item is "instanced", this will contain information about the item's instance that doesn't fit easily into other components. One might say this is the "essential" instance data for the item.

Items are instanced if they require information or state that can vary. For instance, weapons are Instanced: they are given a unique identifier, uniquely generated stats, and can have their properties altered. Non-instanced items have none of these things: for instance, Glimmer has no unique properties aside from how much of it you own.

You can tell from an item's definition whether it will be instanced or not by looking at the DestinyInventoryItemDefinition's definition.inventory.isInstanceItem property.
Type: object
Object Properties
If the item has a damage type, this is the item's current damage type.
Type: int32
Nullable Mapped to Definition
The current damage type's hash, so you can look up localized info and icons for it.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyDamageTypeDefinition
The item stat that we consider to be "primary" for the item. For instance, this would be "Attack" for Weapons or "Defense" for armor.
Type: object
The Item's "Level" has the most significant bearing on its stats, such as Light and Power.
Type: int32
The "Quality" of the item has a lesser - but still impactful - bearing on stats like Light and Power.
Type: int32
Is the item currently equipped on the given character?
Type: boolean
If this is an equippable item, you can check it here. There are permanent as well as transitory reasons why an item might not be able to be equipped: check cannotEquipReason for details.
Type: boolean
If the item cannot be equipped until you reach a certain level, that level will be reflected here.
Type: int32
Mapped to Definition
Sometimes, there are limitations to equipping that are represented by character-level flags called "unlocks".

This is a list of flags that they need in order to equip the item that the character has not met. Use these to look up the descriptions to show in your UI by looking up the relevant DestinyUnlockDefinitions for the hashes.
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyUnlockDefinition
If you cannot equip the item, this is a flags enum that enumerates all of the reasons why you couldn't equip the item. You may need to refine your UI further by using unlockHashesRequiredToEquip and equipRequiredLevel.
Type: int32
Nullable Enumeration
If populated, this item has a breaker type corresponding to the given value. See DestinyBreakerTypeDefinition for more details.
Type: int32
Valid Enum Values
  • None: 0
  • ShieldPiercing: 1
  • Disruption: 2
  • Stagger: 3
Nullable Mapped to Definition
If populated, this is the hash identifier for the item's breaker type. See DestinyBreakerTypeDefinition for more details.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.BreakerTypes.DestinyBreakerTypeDefinition
IF populated, this item supports Energy mechanics (i.e. Armor 2.0), and these are the current details of its energy type and available capacity to spend energy points.
Type: object