// =============================================================================
// TeslaLauncher — Shared IPC Models
// =============================================================================
// IPC types (Tesla.Launcher.Shared): JSON messages between the Windows Service
// and the user-session Agent over a Named Pipe. These never touch the Console
// TCP connection.
//
// The BinaryFormatter wire types (Tesla.Net: LaunchData, InvokeCommand, ...)
// formerly replicated here by hand now live in the shared Tesla.Contract project
// (assembly TeslaConsoleLaunchLib), referenced by the Service. This file is also
// compiled into the Agent, which uses only the IPC types below.
// =============================================================================

namespace Tesla.Launcher.Shared
{
    /// <summary>Command forwarded from the Windows Service to the Userspace Agent.</summary>
    public sealed class IpcMessage
    {
        public string Command   { get; set; }
        public string LaunchKey { get; set; }
        public string PayloadJson { get; set; }
    }

    /// <summary>Response from the Userspace Agent back to the Windows Service.</summary>
    public sealed class IpcResponse
    {
        public bool   Success { get; set; }
        public string Message { get; set; }
        public object Data { get; set; }
    }
}
