docs: public <T> JsonValidationContext addState(T state, Class<? extends T> stateClass) throws IllegalArgumentException {
  
  		// only accept one state of each class
  		if (this.states.containsKey(state.getClass())) {
  			throw new IllegalArgumentException("A state object is already registered for class " + state.getClass().getName());
  		}
  
  		this.states.put(state.getClass(), state);
  
  		return this;
  	}