Ya, I think that you should be able to use `trac.core.Interface`