use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SkillPipeline {
pub steps: Vec<PipelineStep>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "type")]
pub enum PipelineStep {
#[serde(rename = "skill")]
Skill { id: String },
#[serde(rename = "condition")]
Condition {
field: String,
op: String,
value: String,
then: Vec<PipelineStep>,
#[serde(rename = "else")]
else_: Vec<PipelineStep>,
},
#[serde(rename = "parallel")]
Parallel { branches: Vec<Vec<PipelineStep>> },
}