To construct OutputEvents of different types OutputEventCategory needs to be exposed.
It simply looks like an oversight that it isn't.
Unfortunately, the JSON instances for OutputEventCategory are incorrect because the constructor prefixes don't match the type constructor name.
I've got a patch to fix this.