MessagePort
GT: do the work over IPC, use the constellation as the rounting. a message port can be entangled with another one, it can be enabled, and it can be transferred, and it can be stopped. intend to reuse dom code that kichjang wrote, instead of trying to use structured clone to transfer message ports from one realm to another. since message is a JS value it can be structure cloned, but transferring can be done by sending a message to the constellation. thinking of message port id so it can be created inside of script, like pipeline ids that are unique. when script creates a message port, constellation does not care because it is not entangled or enabled. when it becomes entangled, send message to constellation that two ids are entangled and store that information somewhere. when enabling, could just send a message to constellation, and the constellation can distribute IPC channels so subsequent posts can be sent directly.

GT: unshipped message queue - enabling a message port before you transfer it. put the messages it receives on this port’s message queue. the receiver could be an enum of either the real receiver or the queue.

JM: for cancelling tasks, could store the list of known message port ids in the global/script thread, then remove from that list when transferring.