function deep_unpack(): Any {
    // Gjs wrapper for g_variant_get()

This method operates like GLib.Variant.prototype.deep_unpack but also unpacks recursively in case of maybe types, arrays, tuples and dictionary entries.

Thus for example, on a GLib.Variant of type au, GLib.Variant.prototype.unpack will return an array of variants holding u, while this methods returns an array of numbers.

Similarly, on a GLib.Variant of type ms, this method returns a string or null, while GLib.Variant.prototype.unpack returns null or a variant holding a string.

Note though that this method operates identically to GLib.Variant.prototype.unpack for variants holding v, so on the common a{sv} case, calling deep_unpack() will return an object whose property names are the dictionary keys (as JS strings) and whose property values are GLib.Variants. For comparison, GLib.Variant.prototype.unpack on the same variant would return an object whose property names are the same, but whose values are variant holding v.

In practice, this means you should always use this method and never GLib.Variant.prototype.unpack, unless the type information is important to you.