sm: flesh out header file

Message type, enums, and structs
Based mostly on the TCP transport
sm: start working on init