class LineBuilder {
    private String color;
    private double width = 2;
    private double smoothing = 1;
    private Shape shape = Shape.LINEAR;
    private Dash dash = Dash.SOLID;
    private boolean simplify = true;

    /** Sets the line color */
    public LineBuilder color(String color) {
      this.color = color;
      return this;
    }

    public LineBuilder width(double width) {<FILL_FUNCTION_BODY>}

    /**
     * Sets the smoothing parameter
     *
     * @param smoothing a value between 0 and 1.3, inclusive
     */
    public LineBuilder smoothing(double smoothing) {
      Preconditions.checkArgument(
          smoothing >= 0 && smoothing <= 1.3,
          "Smoothing parameter must be between 0 and 1.3, inclusive.");
      this.smoothing = smoothing;
      return this;
    }

    public LineBuilder dash(Dash dash) {
      this.dash = dash;
      return this;
    }

    /**
     * Simplifies lines by removing nearly-collinear points. When transitioning lines, it may be
     * desirable to disable this so that the number of points along the resulting SVG path is
     * unaffected.
     *
     * @param b true if you want to simplify. True is the default
     */
    public LineBuilder simplify(boolean b) {
      this.simplify = b;
      return this;
    }

    public LineBuilder shape(Shape shape) {
      this.shape = shape;
      return this;
    }

    public Line build() {
      return new Line(this);
    }
  }

      Preconditions.checkArgument(width >= 0, "Line width must be >= 0.");
      this.width = width;
      return this;
    
<methods>public non-sealed void <init>() ,public java.lang.String asJSON() ,public abstract java.lang.String asJavascript() ,public java.lang.String toString() <variables>private final PebbleEngine engine,protected static final ObjectMapper mapper