pub trait API {
// Required methods
fn execute(&self, req: Request) -> Result<Response, Box<dyn Error>>;
fn compile(&self, req: Request) -> Result<Response, Box<dyn Error>>;
fn fmt(&self, req: Request) -> Result<Response, Box<dyn Error>>;
fn share(&self, req: Request) -> Result<Response, Box<dyn Error>>;
fn download(&self, req: Request) -> Result<Response, Box<dyn Error>>;
}