USB : Unique identifiers

I am getting fedup with USB devices not having unique identifiers like MAC numbers with network devices.
If I have multiples of the same USB product it is always a song and a dance to tell my software which of the devices to use.

I must be missing something very basic (I’m stupid) or is the USB protocol just that … stupid?

If I have say four identical devices connected to a usb bus.
How do I identify a specific one automatically?

If this doesnt exist for usb and there are no unique identifiers, is there hardware I can buy that somehow can give me unique identifiers per device. ? Like some clever hub.
Or some other clever or unorthedox intermediate way ?

Have you tried out the lsusb?

lsusb -v  | more

You can also see only devices with the specified vendor and product ID numbers (in hexadecimal).

Sure I used lsusb.
The hex vendor and product ID is the same for say 4 identical usb devices when used the same time.
That wont and cannot identify them from each other.

The problem is that for say four identical usb devices, there are absolutely no difference in the output of lsusb. If there was at least a serial number I could use that but there seems to be absolutely no requirement on usb device manufacturers to uniquely define a specific usb device similarly to MAC used with nics.

Unless someone sees something I overlooked, the only solution would be a usb hub that sends additional id info for each hub port along with the device data at the port.

When you attack USB device it gives detailed string like Mouse name or keyboard name or USB LTE modem. You can’t see that from the lsusb or dmesg outputs?

Get two exact same brand model identical mice.
Plug them both in. Do you see any difference between them that can uniquely identify mouse A from B when you plug them both out and back in in random order ?
I dont hink so. I dont see a difference as there is no unique identifier in usb devices of the exact same model.