1. A method comprising: stitching a plurality of data models into a stitched data model, wherein each of the plurality of data models comprises a plurality of nets, wherein at least one of the nets crosses a package boundary, wherein the stitching the plurality of data models further comprises determining whether the nets are completely wired and if the determining is true, connecting wire segments between nodes of the nets and removing the nodes from the stitched data model that comprise non-branching vias, wherein the stitching further comprises if the determining is false, deciding whether any of the nets have an open connection and if the deciding is true, finding a rule with a same number of the nodes as the net with the open connection, and ordering the nets based on the rule; selecting a subset of the nets from the stitched data model based on a constraint; and stitching the subset of the nets into a common rule, wherein the stitching the subset of the nets into a common rule further comprises determining connections between wire segments of rules for the subset of the nets, to connect the wire segments between nodes of the rules, and to link the nodes to the wire segments.