The interaction API (or iAPI) is a set of simple commands that allow the creation of a network of touch interactive objects that can exchange content with eachothers through the use of "attachment tools".
====== Attachment tools ======
They act as a virtual inventory object, on click, an attach request is sent and the object will attach to your avatar, this works wether you are the owner of the object or not. On detach, attachment tools will automatically "drop" where you are standing, simulating a simple inventory where you can pick up and drop various tools, one at a time.
The use of temporary attachments mean that attachment tools do not clutter your inventory and behave as a single, persistent object.
Attachment tools can have a wide range of built-in functionalities but can also interact with "Furniture objects".
====== Furniture objects ======
These objects can be clicked while wearing an attachment tool and will create an interaction based on the attachment tool used and it's eventual content.
examples:
* Clicking a pile of sand with an empty bucket in hand will fill it up with sand.
* Clicking a drain grate with a bucket of liquid will empty the bucket.
====== The tracking API ======
Some objects will have a specific description format that you can read to track its status in real time:
IAPI, LABEL, 0, 10, LABEL2, 5, 100, ..., LABELN, valueN, maxN,
This is a CSV list of parameters, under the following rules:
* header: "IAPI" This marks the description as IAPI compatible.
* index +0: This is the "label" of the first entry, essentially, what it is, some devices have a hardcoded labels.
* index +1: The raw value for the first label.
* index +2: The maximum value for the first label.
* index N: Some devices have multiple values, this is the label for the next value.
* index N+1: The raw value for the current label.
* index N+2: The maximum value for the current label.