I think the main point is to give the option of using Shotguns publishing UI and Pyblishs UI. As for similarities in the interface we might be able to do something, but it may not be worth it. Think the main point is giving developer access to version control.
All extension are python packages, so it might be a good idea to keep all functional code in pyblish-shotgun, so you can do something similar to this in the primary_pre_publish:
import pyblish_shotgun
class PrimaryPrePublishHook(Hook):
# initialization code ...
# check if pre_publish is in Maya, if Maya call self._do_maya_pre_publish() method
def _do_maya_pre_publish(self, task, work_template, progress_cb):
progress_cb(0.0, "Validating current scene", task)
if scene_file:
scene_file = os.path.abspath(scene_file)
# validate it:
scene_errors = pyblish_shotgun.validate_all()
progress_cb(100)
return scene_errors