pub trait Node: Send + Sync {
    // Required methods
    fn new(
        inputs: Inputs,
        outputs: Outputs,
        queries: Queries,
        queryables: Queryables,
        configuration: Value,
    ) -> JoinHandle<Result<Box<dyn Node>, Report>> ⓘ
       where Self: Sized;
    fn start(self: Box<Self>) -> JoinHandle<Result<(), Report>> ⓘ;
}