Thank you, I think @Ennio_Bolondi figured it out.
You can pass any objects derived from vtkObject.
If you want to pass custom Python objects, then you can serialize it to string: create a json representation manually; or use pickle to get a byte array and convert to string using base-64 encoding.