docs: def output(self):
          """Output the generated source file."""
          print(copyright_header % spec_version)
          self._output_imports()
          self._output_tags()
          self._output_validators()
          header = self.override.get_header()
          if header:
              print()
              print()
              print(header.rstrip())
  
          seen = {}
          for class_name, properties in sorted(self.resources.items()):
              resource_name = self.resource_names[class_name]
              t = self.build_tree(class_name, properties, resource_name)
              self.output_tree(t, seen)