code: public void addProperty(String name, String value, int valueIndex) {
          if(name == null || name.isEmpty()) {
              throw new IllegalArgumentException("Invalid property name: " + name);
          }
          if(value == null || value.isEmpty()) {
              throw new IllegalArgumentException("Invalid property value: " + value);
          }
          if(props == null) {
              props = new HashMap<String,String>();
          }
          props.put(name, value);
          this.lastPropertyName = name;
          this.lastPropertyValue = value;
          this.lastChunkIndex = valueIndex;
          separator = -1;
      }
docs: TODO perhaps add a list of allowed properties and their values