The API is more general than @get to allow a wider range of possible uses.
format_string must still point to a valid format string, but it only need to be nul-terminated if
endptr is non-null then it is updated to point to the
first character past the end of the format string.
These two generalisations allow mixing of multiple calls to Variant.va and get_va within a single actual varargs call by the user.
format_string determines the C types that are used for unpacking the values and also determines if the values are copied or
borrowed, see the section on GVariant format strings.
a pointer to a va_list
location to store the end pointer, or null
a string that is prefixed with a format string