code: void initAndValidate(@Nullable InstantiationCreator instantiationCreator) {
      initTypeName();
  
      if (instantiationCreator != null
          && !isGenerateLazy) {
        this.instantiation = instantiationCreator.tryInstantiateFor(
            reporter,
            returnTypeName,
            names,
            containingType,
            isGenerateDefault || isGenerateDerived);
      }
  
      initTypeKind();
      initOrderKind();
      initBuilderParamsIfApplicable();
      initMiscellaneous();
  
      initSpecialAnnotations();
      validateThrowsClause();
      validateTypeAndAnnotations();
  
      initAttributeValueType();
      if (supportBuiltinContainerTypes()) {
        initImmutableCopyOf();
      }
  
      initAttributeBuilder();
    }
docs: Initialized Validates things that were not validated otherwise
  @param instantiationCreator can instantiate encodings