code: public GameSessionPlacement withGameProperties(GameProperty... gameProperties) {
          if (this.gameProperties == null) {
              setGameProperties(new java.util.ArrayList<GameProperty>(gameProperties.length));
          }
          for (GameProperty ele : gameProperties) {
              this.gameProperties.add(ele);
          }
          return this;
      }
docs: <p>
  Set of custom properties for a game session, formatted as key:value pairs. These properties are passed to a game
  server process in the <a>GameSession</a> object with a request to start a new game session (see <a href=
  "https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession"
  >Start a Game Session</a>).
  </p>
  <p>
  <b>NOTE:</b> This method appends the values to the existing list (if any). Use
  {@link #setGameProperties(java.util.Collection)} or {@link #withGameProperties(java.util.Collection)} if you want
  to override the existing values.
  </p>
  
  @param gameProperties
  Set of custom properties for a game session, formatted as key:value pairs. These properties are passed to
  a game server process in the <a>GameSession</a> object with a request to start a new game session (see <a
  href=
  "https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession"
  >Start a Game Session</a>).
  @return Returns a reference to this object so that method calls can be chained together.