Attributes uses a floating reference count system.
Builder.end] and [ctor
Attributes.new_empty] both return floating references.
Calling this function on a `GckAttributes` with a floating reference will convert the floating reference into a full reference. Calling this function on a non-floating `GckAttributes` results in an additional normal reference being added.
In other words, if the this is floating, then this call "assumes ownership" of the floating reference, converting it to a normal reference. If the this is not floating, then this call adds a new normal reference increasing the reference count by one.
All Gck library functions that assume ownership of floating references are documented as such. Essentially any Gck function that performs an operation using a Attributes argument rather than operating on the attributes themselves, will accept a floating reference.
an attribute array
the referenced attributes