using System.Collections.Generic; namespace Uigenx.Protocol { public sealed class UgxPreviewRequest { public string RequestId { get; set; } = string.Empty; public string Screen { get; set; } = string.Empty; public int Width { get; set; } = 1920; public int Height { get; set; } = 1080; public Dictionary Data { get; set; } = new Dictionary(); public Dictionary> States { get; set; } = new Dictionary>(); /// Ask Unity to return the resolved layout rect per named element. public bool Layout { get; set; } } public sealed class UgxLayoutRect { public string Name { get; set; } = string.Empty; public float X { get; set; } public float Y { get; set; } [Newtonsoft.Json.JsonProperty("w")] public float W { get; set; } [Newtonsoft.Json.JsonProperty("h")] public float H { get; set; } } public sealed class UgxPreviewResult { public string RequestId { get; set; } = string.Empty; /// Base64 PNG bytes. public string Png { get; set; } = string.Empty; public int Width { get; set; } public int Height { get; set; } public List Layout { get; set; } = new List(); } public sealed class UgxHotReloadFile { public string Path { get; set; } = string.Empty; public string Content { get; set; } = string.Empty; } public sealed class UgxHotReloadRequest { public string RequestId { get; set; } = string.Empty; public List Files { get; set; } = new List(); } public sealed class UgxHotReloadResult { public string RequestId { get; set; } = string.Empty; public List Reloaded { get; set; } = new List(); public List Errors { get; set; } = new List(); } public sealed class UgxScreenshotRequest { public string RequestId { get; set; } = string.Empty; public int? Width { get; set; } public int? Height { get; set; } } public sealed class UgxScreenStateEntry { public string Screen { get; set; } = string.Empty; public string Layer { get; set; } = string.Empty; } public sealed class UgxScreenState { public List Stack { get; set; } = new List(); } }