class FontBuilder {

    private Family fontFamily = Family.OPEN_SANS;

    private int size = 12; // number greater than or equal to 1

    private String color = "#444";

    private FontBuilder() {}

    public FontBuilder size(int size) {
      Preconditions.checkArgument(size >= 1);
      this.size = size;
      return this;
    }

    public FontBuilder color(String color) {
      this.color = color;
      return this;
    }

    public FontBuilder family(Family family) {
      this.fontFamily = family;
      return this;
    }

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

  @Override
  public boolean equals(Object o) {<FILL_FUNCTION_BODY>

    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;
    Font font = (Font) o;
    return size == font.size && fontFamily == font.fontFamily && Objects.equals(color, font.color);
  
<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