src/node/wrapper.ts/ParentProcess/handshake
class ParentProcess:  private async handshake(child: cp.ChildProcess): Promise<void> {
    if (!this.args) {
      throw new Error("started without args")
    }
    const message = await onMessage<ChildMessage, ChildHandshakeMessage>(
      child,
      (message): message is ChildHandshakeMessage => {
        return message.type === "handshake"
      },
      this.logger,
    )
    this.logger.debug("got message", field("message", message))
    this.send(child, { type: "handshake", args: this.args })
  }