docs: protected void buildBookAdditions(final BuildData buildData) throws BuildProcessingException {
          log.info("\tAdding standard files to Publican ZIP file");
  
          final ContentSpec contentSpec = buildData.getContentSpec();
          final Map<String, String> overrides = buildData.getBuildOptions().getOverrides();
          final Map<String, byte[]> overrideFiles = buildData.getOverrideFiles();
  
          // Load the templates from the server
          final String bookInfoTemplate;
          if (contentSpec.getBookType() == BookType.ARTICLE || contentSpec.getBookType() == BookType.ARTICLE_DRAFT) {
              bookInfoTemplate = stringConstantProvider.getStringConstant(
                      buildData.getServerEntities().getArticleInfoStringConstantId()).getValue();
          } else {
              bookInfoTemplate = stringConstantProvider.getStringConstant(
                      buildData.getServerEntities().getBookInfoStringConstantId()).getValue();
          }
  
          // Setup Book_Info.xml
          buildBookInfoFile(buildData, bookInfoTemplate);
  
          // Setup Author_Group.xml
          if (overrides.containsKey(CSConstants.AUTHOR_GROUP_OVERRIDE) && overrideFiles.containsKey(CSConstants.AUTHOR_GROUP_OVERRIDE)) {
              // Add the override Author_Group.xml file to the book
              addToZip(buildData.getBookLocaleFolder() + AUTHOR_GROUP_FILE_NAME, overrideFiles.get(CSConstants.AUTHOR_GROUP_OVERRIDE),
                      buildData);
          } else if (contentSpec.getAuthorGroup() != null) {
              final TopicErrorData errorData = buildData.getErrorDatabase().getErrorData(contentSpec.getAuthorGroup().getTopic());
              if (errorData != null && errorData.hasFatalErrors()) {
                  buildAuthorGroup(buildData, contentSpec.getAuthorGroup());
              } else {
                  final String authorGroupXML = DocBookBuildUtilities.convertDocumentToDocBookFormattedString(buildData.getDocBookVersion(),
                          contentSpec.getAuthorGroup().getXMLDocument(), "authorgroup", buildData.getEntityFileName(),
                          getXMLFormatProperties());
  
                  addToZip(buildData.getBookLocaleFolder() + AUTHOR_GROUP_FILE_NAME, authorGroupXML, buildData);
              }
          } else {
              buildAuthorGroup(buildData);
          }
  
          // Add the Feedback.xml if the override exists and we are using the default preface
          if (contentSpec.getUseDefaultPreface()) {
              if (overrides.containsKey(CSConstants.FEEDBACK_OVERRIDE) && overrideFiles.containsKey(CSConstants.FEEDBACK_OVERRIDE)) {
                  // Add the override Feedback.xml file to the book
                  addToZip(buildData.getBookLocaleFolder() + FEEDBACK_FILE_NAME, overrideFiles.get(CSConstants.FEEDBACK_OVERRIDE), buildData);
              } else if (contentSpec.getFeedback() != null) {
                  final String feedbackXml = DocBookBuildUtilities.convertDocumentToDocBookFormattedString(buildData.getDocBookVersion(),
                          contentSpec.getFeedback().getXMLDocument(), DocBookUtilities.TOPIC_ROOT_NODE_NAME, buildData.getEntityFileName(),
                          getXMLFormatProperties());
                  // Add the feedback directly to the book
                  addToZip(buildData.getBookLocaleFolder() + FEEDBACK_FILE_NAME, feedbackXml, buildData);
              }
          }
  
          // Setup Legal_Notice.xml
          if (contentSpec.getLegalNotice() != null) {
              final String legalNoticeXML = DocBookBuildUtilities.convertDocumentToDocBookFormattedString(buildData.getDocBookVersion(),
                      contentSpec.getLegalNotice().getXMLDocument(), "legalnotice", buildData.getEntityFileName(), getXMLFormatProperties());
              addToZip(buildData.getBookLocaleFolder() + LEGAL_NOTICE_FILE_NAME, legalNoticeXML, buildData);
          }
  
          // Setup Preface.xml
          buildBookPreface(buildData);
  
          // Setup Revision_History.xml
          buildRevisionHistory(buildData, overrides);
  
          // Build the book .ent file
          final String entFile = buildBookEntityFile(buildData);
          addToZip(buildData.getBookLocaleFolder() + buildData.getEntityFileName(), entFile, buildData);
  
          // Setup the images and files folders
          addBookBaseFilesAndImages(buildData);
      }