BUCKYVERSE
classDiagram
    %% Core Entities
    class Book {
        +String title
        +String author
        +String publisher
        +String isbn
        +String language
        +Date publishedDate
        +String[] tags
        +generateFormats()
        +validateOutputs()
    }
    
    class Metadata {
        +String fileName
        +String title
        +String author
        +String publisher
        +String isbn
        +String language
        +Date publishedDate
        +String[] tags
        +String coverImage
        +loadFromYaml()
        +getMetadataValue(key, type)
    }
    
    class BuildOptions {
        +Boolean debug
        +Boolean pdfOnly
        +Boolean skipQualityChecks
        +Boolean skipDiff
        +String outputDir
        +parseCommandLine()
    }
    
    class Directory {
        +String path
        +Boolean exists
        +create()
        +ensureExists()
    }
    
    %% Output Formats
    class Format {
        <<abstract>>
        +String fileExtension
        +String mimeType
        +generate()
        +validate()
    }
    
    class PDFFormat {
        +String texSource
        +buildFromLatex()
        +buildFromHTML()
        +buildFromMarkdown()
    }
    
    class EPUBFormat {
        +String htmlSource
        +validateWithEpubcheck()
        +checkAccessibility()
    }
    
    class MOBIFormat {
        +String htmlSource
        +convertWithCalibre()
    }
    
    class KFXFormat {
        +String kpfSource
        +convertWithKindlePreviewer()
    }
    
    class HTMLFormat {
        +String texSource
        +convertWithMake4ht()
    }
    
    class MarkdownFormat {
        +String texSource
        +convertWithPandoc()
    }
    
    %% Quality Entities
    class QualityReport {
        +String reportType
        +String outputPath
        +Date generatedDate
        +Boolean hasPassed
        +String[] issues
        +generateReport()
        +displayResults()
    }
    
    class EPUBCheckReport {
        +validateStructure()
        +validateContent()
    }
    
    class AccessibilityReport {
        +checkComformance()
        +generateHTMLReport()
    }
    
    class PDFDiffReport {
        +compareWithPrevious()
        +highlightChanges()
    }
    
    %% Content Entities
    class Content {
        +String type
        +String path
        +process()
    }
    
    class TextContent {
        +String source
        +String markdown
        +String html
        +processText()
    }
    
    class ImageContent {
        +String filepath
        +String format
        +processImage()
    }
    
    %% Managers/Services
    class BuildManager {
        +initializeComponents()
        +executeWorkflow()
        +logCompletion()
    }
    
    class Logger {
        +String logLevel
        +String logFile
        +info(message)
        +error(message)
        +debug(message)
        +warn(message)
    }
    
    %% Relationships
    Book "1" *-- "1" Metadata : contains
    Book "1" *-- "many" Format : produces
    Book "1" *-- "many" Content : consists of
    Book "1" *-- "many" QualityReport : validates with
    
    BuildManager "1" --> "1" Book : builds
    BuildManager "1" --> "1" BuildOptions : uses
    BuildManager "1" --> "1" Logger : logs with
    BuildManager "1" --> "many" Directory : manages
    
    Format <|-- PDFFormat
    Format <|-- EPUBFormat
    Format <|-- MOBIFormat
    Format <|-- KFXFormat
    Format <|-- HTMLFormat
    Format <|-- MarkdownFormat
    
    QualityReport <|-- EPUBCheckReport
    QualityReport <|-- AccessibilityReport
    QualityReport <|-- PDFDiffReport
    
    Content <|-- TextContent
    Content <|-- ImageContent
    
    EPUBFormat --> EPUBCheckReport : validated by
    EPUBFormat --> AccessibilityReport : assessed by
    PDFFormat --> PDFDiffReport : compared by
    
    HTMLFormat --> MOBIFormat : converted to
    HTMLFormat --> EPUBFormat : converted to
    HTMLFormat --> KFXFormat : converted to
    
    TextContent --> PDFFormat : rendered as
    TextContent --> HTMLFormat : rendered as
    TextContent --> MarkdownFormat : rendered as
    
    %% Usage flows
    PDFFormat --> MarkdownFormat : input for
    EPUBFormat --> QualityReport : input for
    PDFFormat --> PDFDiffReport : input for