*Preserves* is a data model, with associated serialization formats. It supports *records* with user-defined *labels*, embedded *references*, and the usual suite of atomic and compound data types, including *binary* data as a distinct type from text strings. Its *annotations* allow separation of data from metadata such as comments, trace information, and provenance information. Preserves departs from many other data languages in defining how to *compare* two values. Comparison is based on the data model, not on syntax or on data structures of any particular implementation language.