paper-xlsxAPI referencepreserve.lifecycle
openpyxl.preserve.lifecycle
paper-xlsx 0.2.1 API reference
One primitive, both directions: every part a save creates or deletes
routes through a PartPlan — part payload + content-type override
- relationship, planned together, applied by the saver's build loop. No bespoke cascades.
The engine is PLANNING-level: nothing here touches bytes until the saver applies the plan, so refusals raised during planning stay atomic.