Migrated from private source issue alphazede/bran-dev#7
Parent: #5
Goal
Add a local PPTX adapter that maps PresentationML into the presentation-content payload defined by the enterprise-document RFC and can emit a supported deterministic PPTX projection.
Import scope
Preserve, where supported:
- deck and slide order, slide identifiers, sections, and layouts
- shapes, text, tables, hyperlinks, and grouped elements
- speaker notes, comments, alt text, and reading order
- themes and style references needed to interpret content
- images and permitted media as content-addressed assets
- stable slide/shape/text locators for BRAN citations
Unsupported transitions, animations, charts, SmartArt, or media behavior must appear in the fidelity receipt rather than disappearing silently.
Safety boundary
- Treat PPTX as an untrusted OPC/ZIP package.
- Do not execute macros, actions, embedded objects, scripts, or media.
- Do not follow external relationships or remote media.
- Enforce part-count, relationship, nesting, decompression, and total-byte limits.
Acceptance criteria
- Import is deterministic regardless of ZIP ordering and timestamps.
- Fixtures cover layouts, text boxes, grouped shapes, tables, notes, comments, alt text, links, images, and reading order.
- Adversarial fixtures cover external media, macro-enabled decks, malformed relationships, path escape, and decompression limits.
- Exported decks open in at least two independent readers and include a fidelity receipt.
- Import-export-import preserves supported slide order, structural identities, notes, accessibility metadata, and citation anchors.
- DLP and public-boundary checks complete before export.
- No PowerPoint installation or cloud service is required.
Non-goals
Running slide shows, executing transitions or macros, or promising pixel-identical layout across rendering engines.
Parent: #5
Goal
Add a local PPTX adapter that maps PresentationML into the presentation-content payload defined by the enterprise-document RFC and can emit a supported deterministic PPTX projection.
Import scope
Preserve, where supported:
Unsupported transitions, animations, charts, SmartArt, or media behavior must appear in the fidelity receipt rather than disappearing silently.
Safety boundary
Acceptance criteria
Non-goals
Running slide shows, executing transitions or macros, or promising pixel-identical layout across rendering engines.