bool equals(Object other) { if (other.runtimeType != runtimeType) return false; return other is Mappable && (identical(other, this) || equatable?.equalsIgnoreCase(other.equatable) == true); }