The Capabilities object is comprised of attributes and commands for a driver. If a driver implements a method it tells the system what commands and attributes it supports to allow Apps a standardized method of interacting with the device.
Long: A unique id for the capability.
String: The name of the capability.
String: The reference for a capability. ie capability.refresh for the Refresh capability. This reference is used by App inputs to select devices.
List<Attribute>: A list of attributes supported by this capability.
List<Command>: A list of commands supported by this capability.