I was in two minds about it. I initially wanted only this module to know what a contract looked like, and the UI script knows more about contracts than I wanted it to (it has to, to display wages). Since the UI knows that stuff already, there's no real reason why it can't handle these messages (it's the only thing that can dismiss crew, after all).