Boopsi uses tag lists to pass and manipulate its attributes. To Boopsi, each TagItem (defined in <utility/tagitem.h>) in a tag list is an attribute/value pair. The TagItem.ti_Tag field contains an ID for the attribute and the ti_Data field holds the attribute's value. For example, the string gadget class defines an attribute called STRINGA_LongVal, which is the current integer value of the gadget. Certain gadgetclass objects have an attribute called GA_Image. Its value is not an integer, it is a pointer to an image. Note that these tag lists can also contain utility.library Global System control tags (like TAG_SKIP and TAG_DONE), which Boopsi uses in processing its tag lists. Any application that ends up processing these lists should do so using the tag manipulation functions from utility.library. For more information on tags and utility.library, see the "Utility Library" chapter of this manual.