using System.Collections.Generic; namespace Recordingtest.Recorder; public sealed class Scenario { public string Name { get; set; } = string.Empty; public string Description { get; set; } = string.Empty; public ScenarioSut Sut { get; set; } = new(); public List Steps { get; set; } = new(); } public sealed class ScenarioSut { public string Exe { get; set; } = "EG-BIM Modeler/EG-BIM Modeler.exe"; public int StartupTimeoutMs { get; set; } = 15000; } public sealed class ScenarioStep { /// click | type | drag | hotkey | wait | focus public string Kind { get; set; } = "click"; public ScenarioTarget? Target { get; set; } public string? Value { get; set; } public string? WaitFor { get; set; } /// ms since recording start (or epoch ms from RawEvent). public long Ts { get; set; } /// Raw screen coordinate [x, y] when applicable. public int[]? RawCoord { get; set; } /// For drag steps: end offset within target element. public double[]? EndOffset { get; set; } /// For drag steps: end raw coordinate [x, y]. public int[]? EndRawCoord { get; set; } /// Raw Win32 virtual-key code for diagnostics (issue #11). public uint? RawVk { get; set; } } public sealed class ScenarioTarget { public string UiaPath { get; set; } = string.Empty; public double[] Offset { get; set; } = new double[] { 0.5, 0.5 }; }