All objects stored through datastore are described by a key. This key uniquely identifies a particular object, and provides namespacing for queries. The datastore.Key class below provides the required functionality. One can define another Key class with a different format that conforms to the same interface (particularly stringifying, hashes, namespacing, and ancestry).