Although they do a lot of the same things, trying to deal with both kinds of device in the same GObject type was making it very hard to understand and maintain. Split out two GObjects that both derive from FuThunderboltDevice.