If I understand correctly, Samourai and Wasabi's Coinjoin implementations use a central coordinator.
This coordinator is responsible for receiving the inputs that users want to join and distributing the values equally among the outputs provided by them.
The amounts left over from this division are considered change and should not be mixed with the outputs that were used.
JoinMarket uses a similar process, but instead of a central coordinator, it uses IRC addresses where so-called takers can act as transaction coordinators and also uses the concept of "mixdepths" to isolate coins (for each coinjoin round).
If what is described above is correct, the central coordinator (or the taker) needs to know which outputs are related to certain inputs in order to distribute the value correctly.
In this case, a malicious coordinator or taker will know the relationship between the inputs/outputs of the transactions.
So there is a relationship of trust involved (in relation to the coordinators) and in the case of takers, a chain analysis company can pass itself off as one with very attractive fees to be able to track the maximum number of transactions.
My questions are:
1) Is this description about how coinjoin works correct?
1.1) If so, is there a way to prevent coordinator or takers from knowing the relationship between inputs / outputs?
1.2) If it is wrong, how can coordinators or takers be prevented from knowing this?