This splits the missionitemprotocol handling entirely into separate header files and separate compilation units.