use identity::Identity as Id; /// A schema format backing a recipe set pub struct Schema { ingredients: BTreeSet, worksteps: BTreeSet, } /// A string-tagged ingredient in a recipe pub trait Ingredient { fn name(&self) -> String; fn slug(&self) -> String; fn id(&self) -> Id; } /// An execution step pub trait Workstep { fn name(&self) -> String; fn description(&self) -> String; fn id(&self) -> Id; async fn run(&self) -> Option<()>; }