docs: @Override
    public void handlePieceAvailability(SharingPeer peer, Piece piece) {
      boolean isPeerInteresting = !this.completedPieces.get(piece.getIndex()) &&
              !this.requestedPieces.get(piece.getIndex());
      if (isPeerInteresting) {
        peer.interesting();
      }
  
      piece.seenAt(peer);
  
      logger.trace("Peer {} contributes {} piece(s) [{}/{}/{}].",
              new Object[]{
                      peer,
                      peer.getAvailablePieces().cardinality(),
                      this.completedPieces.cardinality(),
                      this.getAvailablePieces().cardinality(),
                      this.pieces.length
              });
  
      if (!peer.isChoked() &&
              peer.isInteresting() &&
              !peer.isDownloading()) {
        this.handlePeerReady(peer);
      }
    }