code: def generate_documentation(self, app_name, **kwargs):
          
          output_file = kwargs.get('output_file_name')
          encoding = kwargs.get('encoding', 'utf-8')
          doc_string = generate_markdown_doc(app_name, self)
          if output_file:
              with open(output_file, 'w', encoding=encoding) as doc_file:
                  doc_file.write(doc_string)
  
          return doc_string
docs: Generate documentation for this specification.
  
          Documentation is generated in Markdown format. An example
          of the generated documentation can be found at:
  
          https://github.com/loganasherjones/yapconf/blob/master/example/doc.md
  
          Args:
              app_name (str): The name of your application.
  
          Keyword Args:
              output_file_name (str): If provided, will write to this file.
              encoding (str): The encoding to use for the output file. Default
              is utf-8.
  
          Returns:
              A string representation of the documentation.