/**
   * Return game info.
   *
   * @return game info.
   */
  @RequestMapping("/game/")
  @ResponseBody
  public GameStateInfo getGameInfo() {

    final Iterable<GameBubble> bubbles = gameWorld.getBubbles();

    final GameStateInfo info = new GameStateInfo();
    info.setBubbles(bubbles);
    return info;
  }
  /**
   * Perform game turn.
   *
   * @param turnCommand command to perform turn
   * @return turn result
   */
  @RequestMapping(value = "/game/turn.do" /*, method = RequestMethod.POST*/)
  @ResponseBody
  public TurnResult doTurn(@Valid TurnCommand turnCommand) {
    physicProcessor.fire(turnCommand.getAngle());
    physicProcessor.runPhysics();

    final Iterable<ContactInfo> contacts = physicProcessor.processContactsHistory();

    final TurnResult result = new TurnResult();
    result.setSuccess(true);
    result.setContacts(contacts);
    result.setBubbles(gameWorld.getBubbles());
    return result;
  }