We call this 'substitutability', and one of the major things we have to cover is how to make ProjectReferences support many of the same things that PackageReferences currently do. e.g PackageReference has many kinds of 'assets', and ProjectReference only supports a few of those.