Sorry I have been using 'Programmer' as an overloaded term...
I mean...
https://www.latticesemi.com/programmer which is the Lattice standalone programmer software which is aware of the interfaces to several dev boards and is compatible with Diamond and IceCube2.
And also..
HW-USBN-2B https://www.digikey.co.uk/short/8rdpt7j9
OK, not sure you could program all devices through just one software tool. So that's just one. But the rest of what I said still holds true. This only supports FTDI chips AFAIK (and, AFAIR, possibly the very old parallel port adapters, which are completely obsolete). So if you want to use this software tool with anything else than an FTDI chip, you'd have to do what I said earlier. Too messy to be considered an option IMO.
Edit: I just saw something else: while the HW-USBN-2B adapters are FTDI-based (and this option can be used with any compatible FTDI really, FT232H/FT2232H), standalone programmer also seems to support HW-USBN-2A (which I personally have never seen), which is shown as an "EzUSB" port, so apparently that would be an earlier adapter based on EzUSB devices (Cypress FX1/FX2). That might be easier to emulate with any other kind of MCU that has an USB controller, although you'd need to know their protocol. Good luck, as it's likely completely proprietary.
As I suggested though, there are open-source sofftware programming tools for iCE40 devices, so that's an alternative to the non-modifiable Lattice tools.
The following for instance:
https://github.com/imodularsynth/WinICEProgIt only supports FTDI adapters, but modifying it for supporting another kind of hardware shouldn't be that hard.
Of course all I mentioned was in case you absolutely didn't want to embed FTDI chips on your boards. If you don't mind, then you can absolutely use Lattice tools directly.