Provides client-side APIs for use with the Project Darkstar Server.

API conventions

Interfaces in this API do not extend {@link java.io.Serializable} even if classes that implement those interfaces are required to implement it.

The API uses this approach to avoid an issue involving the serialVersionUID field. To guard against serialVersionUID mismatches, as well as to improve performance, any class or interface that extends Serializable should declare a serialVersionUID field. Since public interfaces can only declare public members, a public interface that extends Serializable would need to have a public serialVersionUID field, meaning that any classes implementing the interface would inherit its serialVersionUID, and so would be prevented from controlling their versioning separately. This issue does not crop up for interfaces that do not extend Serializable, since they by definition have a serialVersionUID of 0.

Documentation conventions

Unless explicitly specified otherwise, all documentation for these APIs uses the following conventions: Methods that can accept or return null values generally specify this at least in their parameter-level (i.e. @param tag) or return value-level (i.e. @return tag) documentation.