Currently, unpack.Unmarshal() does not take an object on unmarshal into because it unmarshals into a generic map then builds the skeleton from the map. There is no reason the skeleton builder couldn't take a concrete object and recurse into it looking for empty interfaces as the means to create the skeleton. This would generalize unpacker nicely and make it consistent with json Unmarshal and it would give the opportunity to simplify the zjson decoder where it decodes typedefs by re-encoding each typedef back into JSON.
Currently, unpack.Unmarshal() does not take an object on unmarshal into because it unmarshals into a generic map then builds the skeleton from the map. There is no reason the skeleton builder couldn't take a concrete object and recurse into it looking for empty interfaces as the means to create the skeleton. This would generalize unpacker nicely and make it consistent with json Unmarshal and it would give the opportunity to simplify the zjson decoder where it decodes typedefs by re-encoding each typedef back into JSON.