code: public void addMediumConstraintMatch(RuleContext kcontext, BigDecimal mediumWeight) {
          mediumScore = mediumScore.add(mediumWeight);
          registerConstraintMatch(kcontext,
                  () -> mediumScore = mediumScore.subtract(mediumWeight),
                  () -> HardMediumSoftBigDecimalScore.of(BigDecimal.ZERO, mediumWeight, BigDecimal.ZERO));
      }
docs: Add a medium level constraint of specified weighting.
  
  This is typically used in Drools scoring to add a medium priority constraint match.
  
  @param kcontext never null, the magic variable in DRL
  @param mediumWeight never null, higher is better, negative for a penalty, positive for a reward