Document completed phase 5 branch support
This commit is contained in:
@@ -57,8 +57,10 @@ The current implementation supports:
|
||||
- `unbalance`
|
||||
- row-boundary repair for trailing affix leakage
|
||||
- split row-label reconstruction for tables that render labels such as `99-` / `100` as two fragments
|
||||
- conditional branch extraction into `critical_branch`
|
||||
- footer/page-number filtering during body parsing
|
||||
- transactional loading into SQLite
|
||||
- conditional branch display through the web critical lookup
|
||||
|
||||
The current implementation does not yet support:
|
||||
|
||||
@@ -270,9 +272,16 @@ Phase-4 notes:
|
||||
|
||||
### Phase 5: Conditional Branch Extraction
|
||||
|
||||
- split branch-heavy cells into `critical_branch`
|
||||
- preserve the base cell text and branch text separately
|
||||
- support branch conditions such as `with helmet` and `w/o leg greaves`
|
||||
Phase 5 is complete.
|
||||
|
||||
Phase-5 notes:
|
||||
|
||||
- branch-heavy cells are split into base result content plus ordered `critical_branch` rows
|
||||
- branch parsing is shared across `standard`, `variant_column`, and `grouped_variant` table families
|
||||
- branch conditions are preserved as display text and normalized into condition keys such as `with_leg_greaves`
|
||||
- branch payloads can contain prose, affix notation, or both
|
||||
- the importer now upgrades older SQLite files to add the `CriticalBranches` table before load
|
||||
- the web critical lookup now returns and renders conditional branches alongside the base result
|
||||
|
||||
### Phase 6: Effect Normalization
|
||||
|
||||
@@ -493,6 +502,7 @@ The current implementation stores:
|
||||
- base `DescriptionText`
|
||||
- base `RawAffixText`
|
||||
- parsed conditional branches with condition text, branch prose, and branch affix text
|
||||
- parsed conditional branches in debug artifacts and persisted SQLite rows
|
||||
|
||||
It does not yet normalize effects into separate tables.
|
||||
|
||||
@@ -530,13 +540,15 @@ The loader is transactional.
|
||||
The current load path:
|
||||
|
||||
1. ensures the SQLite database exists
|
||||
2. deletes the existing subtree for the targeted critical table
|
||||
3. inserts:
|
||||
2. upgrades older SQLite files to the current importer-owned critical schema where needed
|
||||
3. deletes the existing subtree for the targeted critical table
|
||||
4. inserts:
|
||||
- `critical_table`
|
||||
- `critical_column`
|
||||
- `critical_roll_band`
|
||||
- `critical_result`
|
||||
4. commits only after the full table is saved
|
||||
- `critical_branch`
|
||||
5. commits only after the full table is saved
|
||||
|
||||
This means importer iterations can target one table without resetting unrelated database content.
|
||||
|
||||
@@ -562,6 +574,8 @@ Important files in the current implementation:
|
||||
- command orchestration
|
||||
- `src/RolemasterDb.ImportTool/CriticalImportLoader.cs`
|
||||
- transactional SQLite load/reset behavior
|
||||
- `src/RolemasterDb.ImportTool/Parsing/CriticalCellTextParser.cs`
|
||||
- shared base-vs-branch parsing for cell content
|
||||
- `src/RolemasterDb.ImportTool/CriticalImportManifestLoader.cs`
|
||||
- manifest loading
|
||||
- `src/RolemasterDb.ImportTool/PdfXmlExtractor.cs`
|
||||
@@ -574,8 +588,14 @@ Important files in the current implementation:
|
||||
- positioned text fragment model
|
||||
- `src/RolemasterDb.ImportTool/Parsing/ParsedCriticalCellArtifact.cs`
|
||||
- debug cell artifact model
|
||||
- `src/RolemasterDb.ImportTool/Parsing/ParsedCriticalBranch.cs`
|
||||
- parsed branch artifact model
|
||||
- `src/RolemasterDb.ImportTool/Parsing/ImportValidationReport.cs`
|
||||
- validation output model
|
||||
- `src/RolemasterDb.App/Data/RolemasterDbSchemaUpgrader.cs`
|
||||
- SQLite upgrade hook for branch-table rollout
|
||||
- `src/RolemasterDb.App/Components/Shared/CriticalLookupResultCard.razor`
|
||||
- web rendering of base results and conditional branches
|
||||
|
||||
## Adding a New Table
|
||||
|
||||
|
||||
Reference in New Issue
Block a user