This sounds like a massive amount of work, and will result in an oddly fragmented and unusable ecosystem for a long time, as most things won’t initially fit neatly into any of the simplified variants that are defined, pretty much whatever they are.
I have a simpler idea for level switches for people coming from Java.
Level 0: Java. Training time: zero, you already know it. (Or maybe not, if a new Java version is out, but the initial learning time is pretty quick.)
Level 1: Scala. Training time: a while; be prepared to focus hard on learning new things that will make you a better programmer.
If you have a lot of programmers at level 0, but some use level 1, then it’s the responsibility of the level 1 folks to write wrapper APIs so their stuff can be consumed by those at level 0.
There is plenty of precedent for this. Akka, Play, Spark, etc., all have Java APIs and Scala APIs. It does make things a bit harder, but mostly the people implementing the libraries/frameworks would rather write a Java API with most of the implementation in Scala than to use a subset of Java that was functionally indistinguishable from Scala save for some superficial syntax that can be learned in a few hours.
Now, you do have to decide, as an organization, what style of Scala you’re going to be using. The FP-purist approach has some advantages, but you really only get those advantages once you learn a new way of doing a huge number of common tasks. It’s not impossible; it’s considerable work compared to training someone who knows Java to use Scala in a more Java-like way because you don’t have to teach them Java. A lot of knowledge is already helpful. With the FP-purist approach, if you’re starting in Java, much less of your existing knowledge is relevant. (The reverse is true for people coming from Haskell who don’t know Java or other eager, side-effect-friendly languages; there just aren’t nearly so many such people.)
But you can’t tell the compiler, “We want to use Java-like Scala, not FP-purist Scala” because those are two different ways to use the same features. Java-like Scala is a great language precisely because it has those features. Those features are so powerful and general that you can almost emulate a Haskell-like style of programming using them. Are you using implicits to provide context for your actor executors? Or are you using them to define a monad typeclass? Are you using higher-kinded types to define StateT, or to specify the proper type relationships between your mutable collections?
Even though the compiler can’t easily tell the differences, programmers can. So the idiomatic style for the company should be maintained by code review and training. You want it that way anyway because you don’t want your style fragmented every time a new person is hired.
So my recommendation is to not learn Scala until you want to learn quite a lot of it. It’s not so hard. There are some really great books out there. (The free online stuff could be better, admittedly.) But you need to devote some time, and some thought, and if you know Java don’t think it’s just a quick upgrade. There are deep and powerful capabilities that you can get familiar enough to know what you’re looking at in a few days, especially with some good books and/or good training, but which take a while to master (just like Java generics take a while to master).