code: public synchronized <CommandSubclass extends Command> void setupJacksonAnnotatedCommandSerializationAndDeserialization(Class<CommandSubclass> commandSubclassKlass) {
          checkState(!running);
          checkState(!initialized);
          checkState(!setupConversion);
  
          RaftRPC.setupJacksonAnnotatedCommandSerializationAndDeserialization(mapper, commandSubclassKlass);
  
          setupConversion = true;
      }
docs: Setup serialization and deserialization for Jackson-annotated {@code Command} objects.
  This method should <strong>only</strong> be called once.
  
  @param commandSubclassKlass the base class of the Jackson-annotated {@code Command} classes
  @param <CommandSubclass> the base-class type of the Jackson-annotated {@code Command} classes
  @throws IllegalStateException if this method is called multiple times
  
  @see RaftRPC#setupJacksonAnnotatedCommandSerializationAndDeserialization(ObjectMapper, Class)