public static boolean perimeterFits(Element element) {
    final Box2D area = element.area(tA) ;
    final Tile perim[] = perimeter(area, element.origin().world) ;
    //
    //  Here, we check the first perimeter.  First, determine where the first
    //  taken (reserved) tile after a contiguous gap is-
    boolean inClearSpace = false ;
    int index = perim.length - 1 ;
    while (index >= 0) {
      final Tile t = perim[index] ;
      if (t == null || t.owningType() >= element.owningType()) {
        if (inClearSpace) break ;
      }
      else { inClearSpace = true ; }
      index-- ;
    }
    //
    //  Then, starting from that point, and scanning in the other direction,
    //  ensure there's no more than a single contiguous clear space-
    final int
      firstTaken = (index + perim.length) % perim.length,
      firstClear = (firstTaken + 1) % perim.length ;
    inClearSpace = false ;
    int numSpaces = 0 ;
    for (index = firstClear ; index != firstTaken ;) {
      final Tile t = perim[index] ;
      if (t == null || t.owningType() >= element.owningType()) {
        inClearSpace = false ;
      }
      else if (! inClearSpace) { inClearSpace = true ; numSpaces++ ; }
      index = (index + 1) % perim.length ;
    }
    if (numSpaces > 1) return false ;
    return true ;
  }