If you look inside the ResistorBuilder, you can see that the pcb_ports are built without a location, then the footprint is built last. We need to associate the pads inside the footprint with the pcb_port
I think the easiest way to do this is to have sparkfun emit some annotations on to the pads, the introduce a function that associates the ports with the pads. If the association can't be made for a port it's probably an error.
For left/right names, you can just look at the x position of each pad if there are only two pads introduced. We can use a bunch of tricks to avoid pad annotation just based on position, but some pad annotation would be good in the future.