code: public List<Command> addToList(final UUID listId, final int position, final Object value, final int newSize) {
          final State state = createCommandList(new WithCommandType() {
              @Override
              public void invoke(final State state) {
                  addToList(listId, position, value, newSize, state);
              }
          }, true);
          return state.commands;
      }
docs: Creates the list with commands necessary for an add to list action.
  
  @param listId
  The ID of the list where the element should be added.
  @param position
  The position in the list at which the value object should be added.
  @param value
  The object that should be added to the list.
  @param newSize
  The new size the list has after this command has been executed on it.
  @return a list with commands necessary to recreate this add to list command.