Lift the requires function to message class
Add keep alive interval constant
Document core messages