17. An accessory device comprising: one or more hardware elements, including a computer processor; one or more executable modules stored as executable instructions that when executed via the computer processor cause the accessory device to perform operations including: supplying data to a host computing device indicative of an identity of the accessory device; exchanging power with the host computing device in accordance with settings defined by an active power contract associated with the identity of the accessory device, the settings including current limits and a power exchange direction; monitoring to detect a change in power exchange conditions between the host computing device and the accessory device; determining whether the change to the power exchange conditions prompts modification of the active power exchange contract and when the change to the power exchange conditions prompts the modification of the active power exchange contract: communicating a power contract update message to the host computing device to adjust the settings, the power contract update message specifying values for the power exchange direction and the current limits based on the power exchange conditions detected by the monitoring; detecting receipt of a power contract update message from the host computing device, the power contract update message indicating changes to the settings of the active power contract and the power contract update message indicating the power exchange conditions that prompt adjusting the settings; and subsequently exchanging the power with the host computing device in accordance with the changes to the settings for the current limits and the power exchange direction defined by an updated active power contract.
17. An accessory device comprising: one or more hardware elements, including a computer processor; one or more executable modules stored as executable instructions that when executed via the computer processor cause the accessory device to perform operations including: supplying data to a host computing device indicative of an identity of the accessory device; exchanging power with the host computing device in accordance with settings defined by an active power contract associated with the identity of the accessory device, the settings including current limits and a power exchange direction; monitoring to detect a change in power exchange conditions between the host computing device and the accessory device; determining whether the change to the power exchange conditions prompts modification of the active power exchange contract and when the change to the power exchange conditions prompts the modification of the active power exchange contract: communicating a power contract update message to the host computing device to adjust the settings, the power contract update message specifying values for the power exchange direction and the current limits based on the power exchange conditions detected by the monitoring; detecting receipt of a power contract update message from the host computing device, the power contract update message indicating changes to the settings of the active power contract and the power contract update message indicating the power exchange conditions that prompt adjusting the settings; and subsequently exchanging the power with the host computing device in accordance with the changes to the settings for the current limits and the power exchange direction defined by an updated active power contract. 18. An accessory device as recited in claim 17 , wherein supplying the data indicative of the identity of the accessory device comprises exposing a resistor value indicative of the identity for reading by the host computing device.