code: public List<Command> replaceInList(final UUID listId, final int position, final Object value) {
          final State state = createCommandList(new WithCommandType() {
              @Override
              public void invoke(final State state) {
                  final boolean isObservableObject = createObservableObject(value, state);
                  final ListVersionChange versionChange = increaseListVersion(listId);
                  final ReplaceInList replaceInList = new ReplaceInList(listId, versionChange, valueMapper.map(value,
                          isObservableObject), position);
  
                  state.commands.add(replaceInList);
              }
          }, true);
  
          return state.commands;
      }
docs: Creates the list of commands necessary to replace an object in a list.
  
  @param listId
  the ID of the list where the element should be replaced
  @param position
  the position of the element that should be replaced
  @param value
  the new value
  @return the command list