pub trait FileExtPlugin: Send + Sync {
    // Required methods
    fn new() -> JoinHandle<Result<Box<dyn FileExtPlugin>, Report>> ⓘ
       where Self: Sized;
    fn target(&self) -> Vec<String>;
    fn load(
        &self,
        path: PathBuf,
        inputs: Inputs,
        outputs: Outputs,
        queries: Queries,
        queryables: Queryables,
        configuration: Value,
    ) -> JoinHandle<Result<RuntimeNode, Report>> ⓘ;
}