IMO `string` is fine, it implicitly means that whatever the implementation chooses to return, it must be castable as a string.