code: public Registration register (Class type, Serializer serializer, int id) {
  		if (id < 0) throw new IllegalArgumentException("id must be >= 0: " + id);
  		return register(new Registration(type, serializer, id));
  	}
docs: Registers the class using the specified ID and serializer. Providing an ID that is already in use by the same type will
  cause the old entry to be overwritten. Registering a primitive also affects the corresponding primitive wrapper.
  <p>
  IDs must be the same at deserialization as they were for serialization.
  @param id Must be >= 0. Smaller IDs are serialized more efficiently. IDs 0-9 are used by default for primitive types and
  their wrappers, String, and void, but these IDs can be repurposed.