caribouDevice::name is misleading
This interface function seems to suggest that it returns a name (identifier), when it actually returns the device type. You can have multiple devices with the same name. We could rename this to e.g. deviceType
to clarify its meaning. Maybe add true name that identifies a device uniquely. One example is ATLASPix1{M1,Simple,IsoSimple}.