There are a number of classes related to quests and objectives. In general terminology, a quest or an objective is the thing that needs to be done while a quest state or an objective state is one player's state for a given quest or objective.
The main classes involved in this area of the system are:
## Transmitting information between the server and the client
* InitializeThisClientsPlayerMessage - the data a player gets when they log on
* ClientPlayerQuestState - contains a full snapshot of the current state of every quest and objective for one player
* QuestStateChangeMessage - sent to the client when the state of a quest changes
* QuestNotificationCompleteMessage - sent from the client when the player has acknowledged the current state of a quest
* ObjectuveStateChangeMessage - sent to the client when the state of an objective changes
* QuestNotificationCompleteMessage - sent from the client when the player has acknowledged the current state of a quest
## On the server only
* QuestManager - maintains a list of all of the quest states for all of the players currently connected to the server. This singleton listens for all model reports that might affect the state of a quest or objective. For each report, it searches to see if any quests or objectives are affected and initiates the appropriate state transitions as necessary.
* ObjectiveRecord - a data transfer object describing one objective
* ObjectiveStateRecord - a data transfer object describing the current state of a particular objective for a particular player
* QuestRecord - a data transfer object describing one quest
* QuestStateRecord - a data transfer object describing the current state of a particular quest for a particular player
* QuestState - the state of a quest as managed by the model (this is where state transition rules are enforced). Note that a state transition in a quest may enforce transitions in the objectives contained within that quest - this class is responsible for that as well.
* ObjectiveState - the state of an objective as managed by the model (this is where state transition rules are enforced).
