name: generating types: type_a: [foo:integer, bar:string, baz:array:integer] type_b: [foo:string] type_c: [foo:array:string] procedures: do_a: args: [a:integer, b:string, c:type_b] returns: [d:integer, e:type_a] errors: [not found, invalid id] do_b: args: [a:type_a] returns: [] errors: [] do_c: args: [] returns: [] errors: []