Contract
The wire contract of a single @Serializable type, identified by its serialName and, for a sealed/polymorphic subtype, the base it was reached through (#200). Collections are normalized to sorted order so that equality and the canonical text form are independent of declaration order.
Which payload is populated depends on kind:
Constructors
Properties
The serial name of the ContractKind.SEALED / ContractKind.POLYMORPHIC contract this contract was reached through as a subtype, or null for a contract reached any other way. A subtype's serial name is only unique within its base, so (serialName, base) is the contract's identity (#200). A subtype of two bases is recorded once per base.
Enum value names, sorted.
Whether an open ContractKind.POLYMORPHIC base registered a default deserializer in its SerializersModule. That fallback lets a reader coerce an unknown (e.g. newly-added) subtype's discriminator to a sentinel instead of throwing, which downgrades an added-subtype forward break to a WARN (#128). Always false for closed/sealed and non-polymorphic contracts.
The contract's display identity: Base/sub for a subtype, else the bare serialName. Used in findings and accepted by renames, accepted breaks, and Scope.