class Camera extends Component {

  private final Center center;
  private final Up up;
  private final Eye eye;

  private Camera(CameraBuilder builder) {
    this.eye = builder.eye;
    this.up = builder.up;
    this.center = builder.center;
  }

  @Override
  protected Map<String, Object> getContext() {<FILL_FUNCTION_BODY>}

  @Override
  public String asJavascript() {
    return asJavascript("camera_template.html");
  }

  public CameraBuilder cameraBuilder() {
    return new CameraBuilder();
  }

  public static class CameraBuilder {

    private Center center;
    private Up up;
    private Eye eye;

    public CameraBuilder xAxis(Center center) {
      this.center = center;
      return this;
    }

    public CameraBuilder yAxis(Up up) {
      this.up = up;
      return this;
    }

    public CameraBuilder zAxis(Eye eye) {
      this.eye = eye;
      return this;
    }

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

    Map<String, Object> context = new HashMap<>();
    context.put("up", up);
    context.put("eye", eye);
    context.put("center", center);
    return context;
  
<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