Okay, holy crap. So I went to work on my project as an external plugin and finally got to the stage where I'm actually integrating with TWS. And this...this is actually the worst API I've ever worked with in any capacity. And I've worked with binutils. I mean, I know that financial software is almost universally shitty but this is just some next-level badness. Take the displayGroupUpdated callback, which will quite reasonably be called when the user updates a group in TWS. Look at its signature. Does it give us a fucking Contract object? No. It gives us the string representation of it. Is there any method somewhere to turn that into a Contract? Hahahaha fuck you! Instead you can write your own parser for it based off of Contract's encoding. This encoding is not described anywhere. Just print a bunch out and try to guess.