constructor(settings, loadedTheme, checkedTheme) {
        // Assign some data, mark it all as pseudo-private
        this._name = loadedTheme.name;
        this._path = loadedTheme.path;
        this._mounted = false;

        // We get passed in a locale
        this._locale = settings.locale || 'en';

        // @TODO: get gscan to return validated, useful package.json fields for us!
        this._packageInfo = loadedTheme['package.json'];
        this._partials = checkedTheme.partials;

        // all custom .hbs templates (e.g. custom-about)
        this._customTemplates = checkedTheme.templates.custom;

        // all .hbs templates
        this._templates = checkedTheme.templates.all;

        // Create a theme config object
        this._config = themeConfig.create(this._packageInfo);

        this.initI18n();
    }
@TODO this API needs to be simpler, but for now should work!
@param {object} settings
@param {string} settings.locale - the active locale for i18n
@param {object} loadedTheme - the loaded theme object from the theme list
@param {object} checkedTheme - the result of gscan.format for the theme we're activating