What are compatibility guarantees for legacy Scala 2 code?

I am finally migrating to Scala 3; sort of. I was using specialization and most features of Scala 2. The idea is to migrate the API classes, and dispatch to some old code still compiled with Scala 2 to ease maintaining the project for both Scala versions. Will Scala 3 compiler handle calls to classes compiled with Scala 2, even if the artefact uses features dropped from the language? Of course, I do not expect Scala 3 code to properly dispatch to a specialized, synthetic method of a @specialized class, but I hope it will simply ignore specialization in that case and dispatch to the erased, default method. I also have Scala 2 classes with generic, erased methods accepting arrays, which delegate to @specialized methods by matching the array type. I would love to retain at least those and avoid copy&paste manual specialization.

I make sure that the Scala 2 code does not depend on the standard library (or any other) to avoid errors from broken binary compatibility, but I can’t avoid scala.runtime dependency inserted by the compiler itself.

Will it work? Note that I ask about ‘will’, as in with future Scala 3 versions, at least for so long as Scala 2 is alive and kicking. What about calling methods with other dropped features, such as with abstract type projection or existential types in signature?