namespace marlin.core.models.meta; public class RecipeStep : AbstractStep { public RecipeStep(string id) : base(id) { } public string? BaseId { get; set; } public CleanupStep? Cleanup { get; set; } public Dictionary Artifacts { get; set; } = new(); public List Ingest { get; set; } = new(); public RecipeStep? GetBase(Workflow workflow) => this.BaseId != null ? workflow.Steps[this.BaseId] : null; public override IEnumerable GetAncestorsAndThis(Workflow workflow) { yield return this; var step = this.GetBase(workflow); while (step != null) { yield return step; step = step.GetBase(workflow); } } }