code: public synchronized Map<String, String> getVariableMetaDataByReference(int variableIndex) {
      while (variableIndex >= variableMetaData.size()) {
        variableMetaData.add(new HashMap<>());
      }
      return variableMetaData.get(variableIndex);
    }
docs: Gets the metadata for a variable. Creates blank metadata if does not exists, then returns that. Pass by reference.
  
  @param variableIndex the variable number, 0 indexed, to retrieve
  @return the metadata map corresponding to that variable number