Method name as a string ▸ Arguments as an interface{} ▸ Response as an interface{} that must be a pointer err := client.Call("Service.Method", Req{}, &Res{})
returns metadata about source code ▸ go/scanner and go/parser parse code to AST ▸ go/ast helps you walk and modify AST ▸ go/types makes type-checking easy ▸ x/tools/go/loader makes loading code easy