private String needMessage(int meetLevel) {
    meetLevel = Visit.clamp(meetLevel, HoldingUpgrades.NUM_LEVELS) ;
    final Object met = HoldingUpgrades.NEEDS_MET ;
    final Object
      access    = HoldingUpgrades.checkAccess   (this, meetLevel, true),
      materials = HoldingUpgrades.checkMaterials(this, meetLevel, true),
      support   = HoldingUpgrades.checkSupport  (this, meetLevel, true),
      rations   = HoldingUpgrades.checkRations  (this, meetLevel, true),
      special   = HoldingUpgrades.checkSpecial  (this, meetLevel, true),
      surrounds = HoldingUpgrades.checkSurrounds(this, meetLevel, true) ;
    if (access    != met) return (String) access    ;
    if (materials != met) return (String) materials ;
    if (support   != met) return (String) support   ;
    if (rations   != met) return (String) rations   ;
    if (special   != met) return (String) special   ;
    if (surrounds != met) return (String) surrounds ;
    return null ;
  }