docs: public void validate() {
      if (policy == null) {
        if (value == 0) {
          policy = FillPolicy.ZERO;
        } else if (Double.isNaN(value)) {
          policy = FillPolicy.NOT_A_NUMBER;
        } else {
          policy = FillPolicy.SCALAR;
        }
      } else {
        switch (policy) {
        case NONE:
        case NOT_A_NUMBER:
          if (value != 0 && !Double.isNaN(value)) {
            throw new IllegalArgumentException(
                "The value for NONE and NAN must be NaN");
          }
          value = Double.NaN;
          break;
        case ZERO:
          if (value != 0) {
            throw new IllegalArgumentException("The value for ZERO must be 0");
          }
          value = 0;
          break;
        case NULL:
          if (value != 0 && !Double.isNaN(value)) {
            throw new IllegalArgumentException("The value for NULL must be 0");
          }
          value = Double.NaN;
          break;
        case SCALAR: // it CAN be zero
          break;
        }
      }
    }