There is 3 reasons for that:

- There is no clear evidence that the `toJSON` method is actually used when a message go through the worker's port. (As far as I know it's not serialization per say, see [the worker doc](https://developer.mozilla.org/en-US/docs/Web/Guide/Performance/Using_web_workers) for more infos)
- I want to make it clear about what is happening. So we deflate the object before sending it and reconstruct it on the other side. Otherwise it could be confusing that we reconstruct the object on the other side even if we thought we actually sent it as is.
- An SPA effectively expect nothing else than data structures. Thus, we should not use our "business logic" objects directly with the SPA interface (even if for now, the interface is indeed expecting the deflated version of these objects).

However, I agree it's not as clear as I would like it to be. A hint to improve things would be [the comment I added](https://github.com/mozilla/talkilla/pull/274/files#diff-fdfd51394391a0a89adb40b5d5cb9808R39) on the `#_send` method.