I'm interested in examining cities (points) and rivers (lines) within each watershed (polygons) in the country of Colombia. I've performed a spatial join between the cities and the watersheds so the cities have the information about the watershed they are in.
As a final output, I'd like the city attribute table to contain two additional columns: cities that are upstream and cities that are downstream. These two columns only need to contain info about other cities in their watershed:

One path I've gone down is to create a trace network and enable network topology. To do this I've snapped all city points to the nearest river vertex within a half mile:

I've looked into the diagrams that can be created from a trace network, but have been unable to create the desired output.
Should I be looking into another workflow?