ngs?
      if (
        (id1[0] === 'U' && id2[0] === 'U') ||
        (id1[0] === 'F' && id2[0] === 'M') ||
        (id1[0] === 'M' && id2[0] === 'F')
      ) {
        // find their effective sides, after rotation
        const a1 = this.effectiveAngle(id1, part1.angle);
        const a2 = this.effectiveAngle(id2, part2.angle);
        // are they in opposite directions?
        if (a1 - a2 === 180 || a1 - a2 === -180) return true;
      }
      return false;
    }

    // At what angle can a port connect,