This annotation is used to mark an enumerated type as having had a new constant appended to it. For
each additional constant added a new annotation should be appended to the class. If more than one
is required the wrapper annotation interface CordaSerializationTransformEnumDefaults should be used to
encapsulate them

This annotation is used to mark a class has having had a property element. It is used by the
AMQP deserializer to allow instances with different versions of the class on their Class Path
to successfully deserialize the object.

Allows CorDapps to provide custom serializers for third party libraries where those libraries cannot
be recompiled with the -parameters flag rendering their classes natively serializable by Corda. In this case
a proxy serializer can be written that extends this type whose purpose is to move between those an
unserializable types and an intermediate representation.

Provide a subclass of this via the java.util.ServiceLoader mechanism to be able to whitelist types for
serialisation that you cannot otherwise annotate. The name of the class must appear in a text file on the
classpath under the path META-INF/services/net.corda.core.serialization.SerializationWhitelist

This interface should be implemented by classes that want to substitute a token representation of themselves if
they are serialized because they have a lot of internal state that does not serialize (well).

Set of well known properties that may be set on a serialization context. This doesn't preclude
others being set that aren't keyed on this enumeration, but for general use properties adding a
well known key here is preferred.