"Atomic" types are any which can't contain any other types. Only
atomic types may be used as dictionary keys.
Every type has an associated type code; a textual representation of
the type, useful for debugging.
Variants may contain any other built-in D-Bus value. Besides
representing native VARIANT values, they allow type-safe storage and
deconstruction of heterogeneous collections.
Every variant is strongly-typed; that is, the type of its contained
value is known at all times. This function retrieves that type, so that
the correct cast can be used to retrieve the value.
This is the type contained within the array, not the type of the array
itself.