Saw a discussion about this on twatter so I'll mention it here: There is a hilariously old PR on joinmarket-clientserver to add a feature to let takers split their change to match makers' change, when possible. You could think of it as babby's first multi denomination coinjoin. One of the main reasons I created that PR is that the patch is isolated to *one* source file - "taker.py", and that makers already support this or any other way the taker wants to modify the coinjoin template; as long as they see their own outputs, they don't care about anything else.
Can you comment on this? nostr:nevent1qqstcs282a8ukkzfl84hzk5393f0t5l9a75mnd6d58jc0qwhfshyshgpz3mhxue69uhhyetvv9ujuerpd46hxtnfdupzp5x7h70mzt00s86r6lrfg2dm0pyp9tq7f5k48gszmd42cl4yk3nvqvzqqqqqqy3wsnum
'Zerolink' - to me, Coinjoin is not in the same category of protocols as zero knowledge proofs, as that name is trying to suggest. You can make structures with guaranteed properties in isolation, sure, but taking the context into account it's not so simple what they actually achieve. But anyway I defer you to the 20 or 30 talks and podcasts and blogs I've done on these topics. People generally aren't that interested in nuanced takes though, they want strong and clear answers, I don't have them.