1. A computer implemented method of programmably interconnecting circuit nodes of macrocells of a metal programmable integrated circuit, comprising: during a design phase: representing in computer memory each of a plurality of potential interconnections as a graphical feature connecting at least two circuit nodes and displaying at least a portion of a design of the metal programmable integrated circuit showing instances of the graphical features; and for each of the plurality of potential interconnections, reserving physical resources for connecting the at least two circuit nodes, the physical resources consisting of conductors and comprising one or more vias, one or more metal lines, or both one or more vias and one or more metal lines; wherein different ones of the plurality of potential interconnections have different physical layouts that cannot be substituted for one another; and during a physical layout phase: specifying in computer memory a state of each of the plurality of potential interconnections as being connected or unconnected, with some of the plurality of potential interconnections being specified as being connected and some of the plurality of potential interconnections being specified as being unconnected; and for each of the plurality of potential interconnections that are specified as being connected, laying out the one or more vias, one or more metal lines, or both one or more vias and one or more metal lines comprising respective ones of the potential interconnections.