Paper Office
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.