private void SetupVariables(UTContext context)
    {
        context ["project:root"]   = UTFileUtils.ProjectRoot;
        context ["project:assets"] = UTFileUtils.ProjectAssets;

        var platform = Environment.OSVersion.Platform;

        if (Application.platform == RuntimePlatform.OSXEditor)
        {
            platform = PlatformID.MacOSX;             // seems to be some bug in Mono returning "Unix" when being on a mac.
        }

        context ["os:platform"] = platform.ToString();

        var isUnixLike = platform == PlatformID.MacOSX || platform == PlatformID.Unix;

        context ["os:pathSeparatorType"] = isUnixLike ? "Unix" : "Windows";
        context ["os:pathSeparatorChar"] = isUnixLike ? "/" : "\\";

        if (isUnixLike)
        {
            context ["user:home"] = UTFileUtils.NormalizeSlashes(Environment.GetEnvironmentVariable("HOME"));
        }
        else if (platform == PlatformID.Win32NT)
        {
            context ["user:home"] = UTFileUtils.NormalizeSlashes(Environment.ExpandEnvironmentVariables("%HOMEDRIVE%%HOMEPATH%"));
        }
        else
        {
            Debug.Log("Unable to detect underlying os. Property 'user:home' is not available.");
        }

        context ["user:desktop"] = UTFileUtils.NormalizeSlashes(Environment.GetFolderPath(Environment.SpecialFolder.Desktop));

        context ["unity:isUnityPro"]      = UTils.IsUnityPro;
        context ["unity:supportsAndroid"] = UTils.IsBuildTargetSupported(UnityEditor.BuildTarget.Android);
        context ["unity:supportsIos"]     = UTils.IsBuildTargetSupported(UnityEditor.BuildTarget.iOS);
        context ["unity:version"]         = Application.unityVersion;

        context ["utomate:debugMode"] = UTPreferences.DebugMode;

        context ["project:picard"] = "Make it so!";
        context ["project:worf"]   = "Torpedos ready, sir!";
        context ["project:bones"]  = "I'm a doctor, no game developer!";
    }