While what you say here may be true
Basically everything is decoupled from everything (at least semantically)
By having this "God class", you also reduce cohesion because you concentrate too many responsibilities in just one place, often cluttering a single file with many methods. This, combined with the other point you make
Someone cannot ...
Using custom events would be the way to go. Dispatch the event on the <canvas> element. You can pass along custom data as well, which could include an instance of the "applet".
Since the <canvas> element is the only way outsiders interact with your code, you are free to hide the instances of the applet in an Immediately Invoked Function ...
I am assuming based on your description that you are thinking of initializing the application something like this.
const app = new Visualization(document.getElementById("mount"));
TLA+ isn't so much a general purpose language, but...
One of the benefits of using TLA+ to investigate the bug is that once you can reproduce the bug, it’s easy to try alternative fixes. The bug in question is rare and took years to be uncovered, so how would you know if your fix doesn’t introduce another subtle bug that will take years to discover? With ...