Part of #10788
There are several locations in code where we use [UnconditionalSuppressMessage(...)] together with [return: DynamicallyAccessedMembers(...)]. The use of these attributes does not inform the trimmer where it should preserve methods and metadata, but it tries to simply avoid IL2*** and IL3*** warnings. These annotations should be removed: We don't need them for the trimmable type map and they are not needed for the Mono typemap anyway. To suppress warnings, we should use [RequiresUnreferencedCode] and [RequiresDynamicCode] instead.
Additionaly, it appears some types have unnecessary [DynamicallyAccessedMembers] attributes, for example I do not think we need to use them with JavaDictionary<K, V>. This requires further investigation.