I've got a USB-c cable that can charge and transfer data at high speeds... But ask it to transfer display data to a screen and it won't do a thing.
The USB-c standard is a nightmare... While having the same port for everything sounds like a decent idea to reduce waste, not every product requires the full spec. Maybe mandatory labeling (like some companies are doing already) would be a solution, but it's rather late to start with that now.
The max at my job is 20 and it's already horrifying. (C# though) (The variable naming also sucks, a bool 'ok' is constantly overwritten and 12/20 indents are 'if (ok) { ') (guess who's leaving that job, large part because of the coding practices)