+ interface SerialForm extends Externalizable {
+ @NonNull FrontendIdentifier identifier();
+
+ void setIdentifier(@NonNull FrontendIdentifier identifier);
+
+ @java.io.Serial
+ Object readResolve();
+
+ @Override
+ default void writeExternal(final ObjectOutput out) throws IOException {
+ final var id = identifier();
+ id.memberName.writeTo(out);
+ id.clientType.writeTo(out);
+ }
+
+ @Override
+ default void readExternal(final ObjectInput in) throws IOException {
+ setIdentifier(new FrontendIdentifier(MemberName.readFrom(in), FrontendType.readFrom(in)));
+ }
+ }
+
+ private static final class Proxy implements SerialForm {
+ @java.io.Serial