What exactly is the purpose of SkeletonData.defaultSkin? My guess would have been that defaultSkin is just the skin a Skeleton starts with when created.
Yet that is not how it works in the runtime at the moment. For example in Skeleton.getAttachment the defaultSkin always has precedence over the skin, making it impossible to switch the skin as long as defaultSkin is set.
My suggestion would be to remove the defaultSkin reference from Skeleton.getAttachment entirely and instead set skin=data.defaultskin in the Skeleton constructor. This would also prevent Skeleton.skin from being null when the defaultSkin is used.
Or does defaultSkin have a different purpose that i'm just not seeing at the moment?