public override Task<DebugResult> Attach(dynamic args)
        {
            string name = getString (args, "name");
            var nameLower = name.ToLower ();

            if (nameLower.Contains ("unity") && nameLower.Contains ("editor")) {
                var editorProcess = FindUnityEditorProcess ();

                if (editorProcess == null)
                    return Task.FromResult (new DebugResult (8001, "Could not find Unity editor process", new {}));

                Debugger.Connect (IPAddress.Loopback, GetDebuggerPort(editorProcess));

                var debugResult = new DebugResult ();
                debugResult.Add(new OutputEvent("UnityDebug: Attached to Unity editor process '" + editorProcess.ProcessName + "' (" + editorProcess.Id + ")\n"));

                return Task.FromResult (debugResult);
            }

            return Task.FromResult (new DebugResult (8002, "Unknown target name '{_name}'. Did you mean 'Unity Editor'?", new { _name = name}));
        }
		DebugResult CreateDebugResult(string message)
		{
			var debugResult = new DebugResult ();
			debugResult.Add (new OutputEvent (message));
			return debugResult;
		}