1. FT2232H is a must. Gowin's official programmer software uses FT2232H's MPSSE mode to implement JTAG. I can dumb it down to FT232H, but for $0.8 saving, neutering a second channel which can be used for UART, is not the best option.
Yep. Funny how many people go bonkers as soon as they see the word "FTDI" somewhere. Yet FTDI parts are everywhere. And they just work.
And yes, for JTAG access, they are great. Many vendors' programmers use them, because their MPSSE engine works great for JTAG/SWD, and is trouble-free.
Just one suggestion. If it's "routable"... because your board's going to be pretty dense already.
It would be nice if you routed all required signals from the second channel of the FT2232H to access it as synchronous FIFO (I don't remember if you can use the second channel in synchronous mode, something to check). That's basically an 8-bit data bus, a clock out signal and a few control pins. The synchronous FIFO mode is the only one with which you can get the max data throughput (~30MBytes/s in practice).
Ignore that if 1/ channel two can't be used in this mode and 2/ you don't have enough room to route that, or enough spare IOs...
But just saying, I find it a shame that many dev boards using a FT2232H or FT232H don't allow you to use synchronous FIFO mode. UART only access gets you like 300KB/s max (for the highest baud rate of 3MB/s), asynchronous FIFO mode, only like 8MBytes/s max (which is already much better), but for only 1 additional pin (the clock), you can get the full throughput...