package tc.oc.api.message;
import tc.oc.api.docs.virtual.Document;
/**
* A {@link Document} representing a request or response through the API.
*
* Every message type must be explicitly registered through a {@link MessageBinder}.
* Registration associates a type name with a base type and an instantiable type.
*
* The base type is the common ancestor of all types that represent
* this message. Serialization uses the base type to figure out the
* type name for outgoing messages.
*
* The instantiable type is the class that will represent incoming messages.
* This class must have a no-args constructor, and should include every field
* that any incoming message might have.
*/
public interface Message extends Document {
}