("FreeType Integration","1 Day","22-05-26","22-05-26","FreeType library initialized; FT_Face successfully loaded from font buffer","","Base integration for the entire typography engine.","Wk 2","Wk 2","Critical"),
("HarfBuzz Integration","1 Day","22-05-26","22-05-26","HarfBuzz library linked; hb_font and hb_buffer created from FT_Face","","Required for shaping Unicode and layout engine.","Wk 2","Wk 2","Critical"),
("FontFace Architecture","1-2 Days","22-05-26","22-05-26","RAII wrapper for FT_Face and hb_font_t; clean memory management","","Encapsulates font face lifecycle in C++.","Wk 2","Wk 2","High"),
("FontLoader System","1 Day","22-05-26","22-05-26","Loads raw font binary data (TTF/OTF) from memory buffer into FontFace","","Supports loading from system or custom paths.","Wk 2","Wk 2","High"),
("FontResolver System","1-2 Days","22-05-26","22-05-26","Resolves font requests (family, weight, italic) to best matching local font","","Determines which font to load dynamically.","Wk 2","Wk 2","High"),
("Font Metrics Engine","1 Day","22-05-26","23-05-26","Calculates ascender, descender, line gap, and scale factors","","Ensures vertical text alignment is correct.","Wk 2","Wk 3","High"),
("Advance Width Calculation","1 Day","22-05-26","23-05-26","Retrieves horizontal advances for individual glyphs via FreeType / HarfBuzz","","Needed to correctly advance cursor during text rendering.","Wk 2","Wk 3","High"),
("Glyph Lookup System","1 Day","22-05-26","23-05-26","Maps unicode character points to glyph indices accurately","","Core of character representation.","Wk 2","Wk 3","High"),
("Missing Glyph Detection","1 Day","23-05-26","23-05-26","Identifies when a font lacks a glyph for a codepoint; triggers fallback","","Prevents rendering blank spaces / boxes (tofu).","Wk 3","Wk 3","Med"),
("LRU Glyph Cache","1-2 Days","22-05-26","23-05-26","Caches rendered glyph bitmaps; cache hits >90% on text corpus","","Crucial for text rendering performance.","Wk 2","Wk 3","Critical"),
("Runtime Font Cache","1 Day","22-05-26","23-05-26","Stores loaded FontFace instances globally to prevent reloading same font resource","","Speeds up multi-page renders.","Wk 2","Wk 3","High"),
("Thread-Safe Font Engine","1 Day","22-05-26","23-05-26","All font engine components are thread-safe; concurrent access protected by mutexes","","Supports background parsing and parallel rasterization.","Wk 2","Wk 3","High"),
("Memory Management & RAII","1 Day","22-05-26","22-05-26","Zero memory leaks under ASan when loading and unloading fonts","","Strict enforcement of ownership semantics.","Wk 2","Wk 2","Critical"),
("HarfBuzz Ligature & Kerning Support","1 Day","22-05-26","23-05-26","Applies advanced open type features (liga, kern) correctly during text shaping","","Ensures professional typesetting look.","Wk 2","Wk 3","High"),
("Unicode Text Shaping Pipeline","2 Days","22-05-26","23-05-26","Shapes incoming UTF-8 string into shaped glyph run with correct advance and offsets","","Translates abstract string to concrete spatial coordinates.","Wk 2","Wk 3","Critical")
],
"PDF font resource loader (Type1/TrueType/CID)":[
("PDF Font Resource Loader","2 Days","23-05-26","25-05-26","Loads font resource streams directly from PDF dictionaries","","Essential for rendering documents with embedded fonts.","Wk 3","Wk 3","Critical"),
("TrueType Font Support","1 Day","23-05-26","24-05-26","Parses and renders standard TrueType (.ttf) fonts","","Handles glyph outline rendering for TrueType format.","Wk 3","Wk 3","High"),
("OpenType Font Support","1 Day","24-05-26","24-05-26","Parses and renders standard OpenType (.otf) fonts","","Handles CFF outlines and advanced OpenType tables.","Wk 3","Wk 3","High"),
("Type1 Font Support","1 Day","24-05-26","25-05-26","Parses and renders legacy Type 1 postscript fonts","","Needed for legacy PDF documents.","Wk 3","Wk 3","High"),
("CIDFont Support","2 Days","25-05-26","26-05-26","Correctly maps character IDs to glyph indices for CIDFonts","","Crucial for large character sets (CJK).","Wk 3","Wk 4","Critical"),
("Embedded Font Loading","1 Day","23-05-26","24-05-26","Extracts and loads embedded font file streams (FontFile, FontFile2, FontFile3)","","Prevents font missing errors.","Wk 3","Wk 3","Critical"),
("Subset Font Loading","1-2 Days","24-05-26","26-05-26","Successfully loads fonts containing only a subset of glyphs","","Common optimization in PDFs; requires robust glyph-index mapping.","Wk 3","Wk 4","High"),
("Font Metadata Extraction","1 Day","23-05-26","24-05-26","Parses font names, flags, subtypes, and panose data","","Useful for debugging and font substitution matching.","Wk 3","Wk 3","Med"),
("CJK (Chinese/Japanese/Korean) Support","2 Days","24-05-26","26-05-26","Successfully renders double-byte character sets and vertical writing parameters","","Crucial for international document rendering.","Wk 3","Wk 4","High"),
("PDFium ↔ Font Engine Integration","2 Days","24-05-26","26-05-26","Synchronizes PDFium's font extraction with our FreeType/HarfBuzz pipeline","","Binds the layout interpreter to our rendering path.","Wk 3","Wk 4","Critical"),
("Lazy Font Loading","1 Day","24-05-26","26-05-26","Loads font resource streams only when a glyph from that font needs to be rendered","","Optimizes document open times and memory consumption.","Wk 3","Wk 4","Med")
],
"Font substitution system (Liberation fonts)":[
("Font Fallback System","1-2 Days","25-05-26","27-05-26","Dynamically selects a fallback font when primary font lacks glyph","","Ensures all characters render.","Wk 4","Wk 4","High"),
("Font Substitution System (Liberation Fonts)","2 Days","25-05-26","01-06-26","Substitutes missing system fonts (e.g. Arial) with metric-compatible Liberation fonts","","Keeps layout intact.","Wk 4","Wk 4","High")