Use `fusing` to add the `emits` functionality on the Spark

I wonder if this will introduce breaking changes for exiting plugins.