namespace MAF1.Web; public sealed class WorkflowGraph { public List Nodes { get; set; } = []; public List Edges { get; set; } = []; } public sealed class WorkflowNode { public string Id { get; set; } = ""; public string Type { get; set; } = ""; public string Title { get; set; } = ""; public double X { get; set; } public double Y { get; set; } public Dictionary Config { get; set; } = new(StringComparer.OrdinalIgnoreCase); } public sealed class WorkflowEdge { public string Id { get; set; } = ""; public string From { get; set; } = ""; public string To { get; set; } = ""; public string FromPort { get; set; } = ""; public string ToPort { get; set; } = ""; public string? When { get; set; } } public sealed class WorkflowRunResult { public bool Ok { get; set; } public string? Error { get; set; } public List Steps { get; set; } = []; } public sealed class NodeRunLog { public string NodeId { get; set; } = ""; public string Type { get; set; } = ""; public string Title { get; set; } = ""; public bool Skipped { get; set; } public string? Message { get; set; } public Dictionary Inputs { get; set; } = []; public Dictionary Outputs { get; set; } = []; }