docs: protected void setJsonValue(JsonObjectBuilder builder, T value) {
      // I don't like this - there should really be a way to construct a disconnected JSONValue...
      if (value instanceof Boolean) {
        builder.add("value", (Boolean) value);
      } else if (value instanceof Double) {
        builder.add("value", (Double) value);
      } else if (value instanceof Integer) {
        builder.add("value", (Integer) value);
      } else if (value instanceof Long) {
        builder.add("value", (Long) value);
      } else if (value instanceof BigInteger) {
        builder.add("value", (BigInteger) value);
      } else if (value instanceof BigDecimal) {
        builder.add("value", (BigDecimal) value);
      } else if (value == null) {
        builder.addNull("value");
      } else {
        builder.add("value", value.toString());
      }
    }