It should still join as a “Thing” if it doesn’t find a fingerprint it likes. Once joined if you go to the device info page in IDE via My Devices, there is a line called Raw Description that contains key zigbee info like the endpointId, zigbee profile, zigbee device class, plus in and out clusters.
That’s the starting point for a zigbee device. Then using the zigbee spec, you can start writing/testing expected commands and see if the device supports binding, reporting and message formats.
PS: this keyfob is probably not a good example to use as a primer for device handlers. It uses multiple endpoints which is uncommon. I honestly don’t know that anyone besides @mitchp or @johnr would know enough zigbee to figure this out. I certainly wouldn’t have.