A more detailed description can be found in FLIP-32.
This includes: Table, GroupedTable, WindowedTable, WindowGroupedTable, OverWindowedTable, Window, OverWindow
We can keep the "Table" Scala implementation in a planner module until it has been converted to Java.
We can add a method to the planner later to give us a concrete instance. This is one possibility to have a smooth transition period instead of changing all classes at once.