Originally, Layers were these generic things that you could attach to Scopes. If the Layer object needed additional information (a filename or a language), that was set directly on the Layer object. The Scope didn't need to know anything about that.

Languages, like files, have this issue where the default context has knowledge of the language and needs to notify if the default context changes. I just wonder if we should have a generic mechanism for this so that we don't need to spread knowledge of languages all over (in Scope and PreferencesSystem)