feat: typed extension inputs and outputs (#734)