ability to specify link contract for XDIAgent
generics for LinkContractBase subclasses