public async Task RegisterAsync(string typeFilePath)
        {
            Script script = LuaUtils.CreateAndInitializeScript();

            try {
                await script.DoFileAsync(typeFilePath);

                GotchiType type = new GotchiType();

                script.Call(script.Globals["OnRegister"], type);

                _registry.Add(type);
            }
            catch (Exception) {
                await _logAsync(LogSeverity.Error, string.Format("Failed to register type {0}", System.IO.Path.GetFileName(typeFilePath)));
            }
        }