ModuleDescriptor: dependencies except those with scope EXTENDS are saved as Dependency object.
Use mediator to access actual dependencies instead of implicit assumption of particular apply() order.
Preserve actual value in scope drop-down to minimize chances for accidental change.
LanguageRuntime: towards use of actual languages and their generators when building generation plan: supply run-time set of extended languages; respect extended languages when looking for engaged generators; keep track of dependency origin while collecting engaged generators.
TemplateModule: introduce base abstract class to facilitate changes in TemplateModule API
Pass specific instance of module repository for LanguageDescriptorModelProvider to track
There's no reason for refactoring language to extend editor, findUsages and collections languages (smodel is extended just to ensure classpath dependency to smodel runtime). These 'extends' dependencies trace back to ancient times and are likely to be of no significance nowadays.
findUsages language doesn't extend intentions, sharedConcepts or baseLanguage.
findUsages generator: dependency from collections in merely for priority rule, relax.
checkedName generator doesn't extend any mentioned one, uses merely for priority rules, relaxed.
lang.test doesn't extend lang.editor. Regenerate ide.build.
Module properties: show title for modules column, hide re-export flag for dependencies to generators (as we don't handle them now).