=str #15755 #15756 source and sink

sorry, deleted the old branch by accident, previous discussion was at #15786 
It is confusing that SinkKey specifies the second type, although that type has nothing to do with the Key-ness (which is the equals and hashCode if I understood correctly)