Learning in public — this reference is being written in the open. Unfinished pages are excluded from search engines.
paged.IDML Reference
Plugins

Plugins

The five first-party content plugins that extend paged beyond native IDML — vector drawing, web content, raster images, spreadsheets, and database publishing — all built on the Plugin SDK.

Tier: BeginnerBeginnerIexplanation

In short plugins add new kinds of content to a paged document. The five first-party plugins are built on the same Plugin SDK contract any third party uses — they're the worked examples. Each renders into the document through the engine's scene-layer surfaces and persists into the .paged container.

  • paged.drawvector drawing (pen, paths, pathfinder, SVG I/O).
  • paged.webHTML/CSS as a content type.
  • paged.imageraster processing + PSD round-trip (Rust/WASM, GPU kernels).
  • paged.sheeta spreadsheet engine with print-grade layout (Rust/WASM, XLSX round-trip).
  • paged.datadatabase publishing + automation (Rust/WASM, DuckDB).

Plus plugin-template — the fork-and-go starter.

Plugin capability state

The live status of each plugin's capabilities, from the registry:

shipped & verified · shipped, untested · partial · failing · · planned

Plugin · data 22 features · 100% green

FeatureShellData
Print automation / batch generation (per-record / per-group / one catalog)
data.automation.batch
Barcode / QR symbologies — clean-room EAN-13/UPC-A, Code-128, QR encoders + binding + VECTOR lowering (§9.7)
data.barcode.symbology
Bindings authoring — first-class add-binding flow in the bindings panel
data.bind.authoring
Change-highlighting on refresh — per-binding "what changed since last sync" report (§8)
data.bind.change-report
Binding + synchronization engine — resolution graph, sync states, identity diff
data.bind.engine
Field-mapping wizard — map source columns → variable bindings one-click (§9)
data.bind.field-mapping
Record-preview stepper — resolve a binding against a chosen record index N (§9)
data.bind.preview-step
Illustrator-compatible variable-library XML — import + export (§16.4)
data.dataset.library-xml
Data sets — capture / switch / delete, applied as ONE undo step (§16.4)
data.dataset.palette
Binding-expression DSL — lexer/parser/eval + 42 functions, registry-driven dispatch
data.expr.engine
Governed-extract source (governed tables + optional metadata sidecar -> catalog)
data.governed.extract
Locale-aware display formatting (en/de v1)
data.i18n.display
Placeholder lowering — variable replacement + single-region dynamic table
data.lower.content
v43 lowering consumers — in-text variables (D-01), image place (D-14), live record-flow (D-12), rules (D-13)
data.lower.v43-consumers
Performance gates (§12.5) — engine-tier perf assertions
data.perf.gates
paged.data bundle (media.paged.data) — manifest + activate + 3 panels + DuckDB query glue
data.plugin.bundle
Register as an SDK data provider (publish RecordSet to other consumers, e.g. sheets)
data.provider.contract
Query engine (DuckDB-WASM) + RecordSet shape/order/hash — the Arrow seam
data.query.seam
Capability-gated data access + threat model (the suite's largest surface)
data.security.gates
Source adapters (inline + file at M0) + capability/consent gate + visible manifest
data.source.adapters
D-11 DB attach (SQLite/Postgres/MySQL) + DuckDB-WASM first-class engine + refresh-policy + remote
data.source.db-attach
Illustrator "Variables" — the four traits, mapped onto the shipped binding model (§16.4)
data.variable.traits

Plugin · image 61 features · 72% green

FeatureShellAPIImage
A sampled .abr tip paints through the existing stroke accumulator
image.abr.engine-bridge
.abr brush-preset reader over a new PSD descriptor reader
image.abr.reader
The .abr regression gate, split into the two lanes its roles can run
image.abr.regression-gate
Per-channel statistics, from the same buffer as the histogram
image.channels.readout
Load a channel as the selection (luminosity masking)
image.channels.to-selection
CMS display lane — qcms RGB↔RGB (the exact build core ships, page/editor agree)
image.cms.display
CMS behind the swappable CmsEngine seam (D-11: hybrid)
image.cms.engine
CMS rung 1 — the RGB display transform at decode
image.cms.ingest-transform
CMS print lane — moxcms per-intent RGB↔RGB + CMYK8→RGBA8 ingest
image.cms.print
AVIF / JXL / camera-RAW / HEIC — codec verdicts (deferred + explicit non-goals)
image.codec.avif
·
EXIF/TIFF read — orientation + DPI + color-space tag, auto-orient at ingest
image.codec.exif
Codec adapter contract (ImageSource/ImageTarget over sans-IO ByteSource) + PNG + raw
image.codec.traits
Conformance harness — scalar references, gpu↔ref parity, fixture corpus
image.conformance.harness
Panel + chain integration of the new adjustments and generators
image.editor.adjust-breadth
Auto-enhance — gray-world WB + percentile auto-levels params from the panel histogram
image.editor.auto-enhance
Photoshop .abr brush libraries load and set the brush
image.editor.brush-presets
Clone stamp — the brush with a sampled paint layer
image.editor.clone-stamp
Content-aware fill — coarse-to-fine exemplar inpainting
image.editor.content-aware-fill
Editor crop + straighten tool — host-agnostic crop machine over the geom.crop window
image.editor.crop
Crop straighten commits (arbitrary-angle rotation resample)
image.editor.crop-straighten
Editor levels/curves/white-balance panel — histogram view + adjust kernels
image.editor.curves
K-3 decode worker pool — off-main-thread ingest decode (host.workers consumer)
image.editor.decode-pool
Filters — blur / unsharp / hue-rotate / invert in the adjustments panel
image.editor.filters
Healing brush — a clone tone-matched in the gradient domain
image.editor.healing-brush
History panel over the tile journal
image.editor.history-panel
M4 editor enablement — C-5 placed bytes → decode → adjust → C-1 Stage-A in-frame composite
image.editor.ingest
Pixel-layer stack with a compose.* fold
image.editor.layers
Brush / Pencil / Eraser — the raster paint lane
image.editor.paint
Raster type — shaped glyphs painted into a layer
image.editor.raster-type
Resample — resize the working image through the registered kernels
image.editor.resample
C-6 tile provider for placed images (host.images.claimImageResource, v44; honest level-0 subset)
image.editor.tile-provider
Bounded COW tile journal — undo/redo for pixel edits
image.editor.undo-journal
Engine B — persistent buffer graph (invalidation, mip-aware eval, Gestures/Operations)
image.graph.engine-b
16-bit PSD sources open, reduced to 8 and reported
image.io.depth-16bit-ingest
Save-back — adjusted composite to PSD / PNG / JPEG
image.io.save-back
Kernel breadth — 24 new point/compose/gen kernels (73 → 97)
image.kernel.breadth-2026-08
T0 generated kernel families (arith/relational/boolean/cast/band/minmax/linear)
image.kernel.family-t0
T1 crown-jewel kernels (conv/resample/compose — handwritten WGSL modules, ABI v1.1)
image.kernel.family-t1
T2 editor-bearing kernels (adjust/geom/generators)
image.kernel.family-t2
T3 breadth kernels (morphology, rank/median, distance transform)
image.kernel.family-t3
1D and 3D LUT sampler classes
image.kernel.lut-samplers
General backward-map warp
image.kernel.warp-backward
Frozen WGSL kernel ABI v1 (4 bind groups, 16×16, mask-mixed pointwise)
image.kernel.wgsl-abi
Clipping layers — an adjustment confined to the layer beneath
image.layers.clipping
The layer fold keeps adjustment layers in f16
image.layers.f16-fold
Layer groups — pass-through and isolated, nesting up to eight
image.layers.groups
A host path becomes the selection
image.paths.path-to-selection
A raster selection becomes a real vector path
image.paths.selection-to-path
Engine A async sinks — to_buffer_async/to_encoder_async (the wasm32/WebGPU readback lane)
image.pipeline.async-sink
Engine A — demand-driven streaming pipeline skeleton
image.pipeline.engine-a-skeleton
paged.image bundle (media.paged.image) — manifest + activate + panel
image.plugin.bundle-manifest
PSD structural session — layer list/edit/save reach the editor
image.psd.editor-doors
PSD import populates the layer stack (declines rather than approximates)
image.psd.layer-import
PSD mutatable — edits re-encode through the preservation writer
image.psd.mutatable
PSD rendered tier — channel decode + flatten render oracle
image.psd.rendered
PSD/PSB structural parse + preservation-invariant writer
image.psd.roundtrip
Reductions — histogram + min/max/mean statistics
image.reduce.statistics
Residency Tier 0/1 hardening under working-set pressure
image.residency.tier01
Selection-mask plumbing — the §6.1 mask surfaced end-to-end
image.selection.mask
Selection system — marquee/ellipse/lasso/wand over the mask ABI
image.selection.mask-tools
Selection coverage threaded through the GPU adjust chain
image.selection.masked-pipeline

Plugin · doc 14 features · 43% green

FeatureShellPanelplugin.doc
Atomic pour — the place path adopts Mutation::Batch for text steps (C-14)
plugin-doc.atomic-pour
The wordDocument surface — objectType + editContext declaration (ADR-024)
plugin-doc.edit-context
·
Embedded placement — a .docx poured into a host frame via host mutations
plugin-doc.embedded-placement
File entry — the .docx/.dotx importer and the "Place Word document…" command
plugin-doc.file-entry
Identity-based LCS alignment — the preservation invariant under every derived edit
plugin-doc.identity-alignment
Depth-aware table locator — a nested table cannot misdirect an outer edit
plugin-doc.nested-table-locator
OPC container + verbatim carry-through preservation (paged-ooxml)
plugin-doc.opc-foundation
Outline/styles panel — the retained LoweredDoc surfaced in the editor
plugin-doc.outline-panel
·
DOCX read path — body, styles, lists, tables, images, hyperlinks, notes
plugin-doc.read-path
Edited save-back — targeted byte-level patch of word/document.xml
plugin-doc.save-back
·
Save-back refusal ledger — the patcher's skips reach the Problems panel
plugin-doc.save-back-feedback
Paragraph-property save-back — a targeted `<w:pPr>` rewrite
plugin-doc.save-back-paragraph-props
Table-structure save-back — rows and columns inserted/deleted in the source bytes
plugin-doc.save-back-table-structure
Verbatim export — the zero-edit .docx exporter and its degrade path
plugin-doc.verbatim-export

Plugin · draw 39 features · 53% green

FeatureRendererMutationCanvasShellAPIDraw
Add-anchor plan (split segment at on-curve click)
plugin-draw.anchor-add
Convert-anchor plan (corner ↔ smooth)
plugin-draw.anchor-convert
Delete-anchor plan (nearest within tolerance, contour floor)
plugin-draw.anchor-delete
Appearance model — multi fill/stroke metadata stack + baked top layer (Tier B)
plugin-draw.appearance
Appearance panel v0 — the metadata stack, with the bake limit stated in the UI
plugin-draw.appearance-panel
Blends v1 — three spacing modes over a real spine (grew the tool-wave-2 blend v0)
plugin-draw.blends
Brush tools v0 — paintbrush, blob brush, eraser (calligraphic nib sweep)
plugin-draw.brush-tools
paged.draw bundle manifest (media.paged.draw) + activate skeleton
plugin-draw.bundle-manifest
Compound paths — make / release, with real non-zero holes
plugin-draw.compound-paths
On-canvas corner-radius tool — the live-corners row's predicted handle
plugin-draw.corner-radius-tool
vectorGraphic edit context — live enter/exit via contribute.editContext
plugin-draw.edit-context-live
Eyedropper — sample element properties and apply to the selection
plugin-draw.eyedropper
Fill panel as a declarative schema panel — the second W3.1 consumer, with a published binding
plugin-draw.fill-schema-panel
Cubic bezier kernel — de Casteljau split, eval, closest-t, flatten
plugin-draw.geometry-bezier
Anchor/handle math — corner, mirror, smooth-from-drag, angle constrain, affine
plugin-draw.geometry-handles
RDP polyline simplification + perpendicular segment distance
plugin-draw.geometry-rdp
Graphic styles — a named, LINKED complete appearance with override DETECTION
plugin-draw.graphic-styles
Headless conformance corpus over published canvas-wasm
plugin-draw.headless-conformance
Image Trace v0 — raster to editable vector over visioncortex
plugin-draw.image-trace
Layers BINDING PROVIDER — paged.draw serves the HOST Layers panel (ADR 023 phase D)
plugin-draw.layers-binding-provider
Layers panel — the panels/layers.panel.json prototype made real (expert-leaf React)
plugin-draw.layers-panel
Live Corners — Rounded/Inverse/Bevel/Fancy/None presets via frameCornerOption*/Radius* + live marker (Tier B)
plugin-draw.live-corners
Live Paint v0 — regenerable face paint over the planar arrangement (NOT live)
plugin-draw.live-paint
Measure readout drawn on-canvas via the overlay text primitive
plugin-draw.measure-overlay-text
Objects on a Path — distribute / align / pivot / reorder by TRANSFORM; it moves your objects and creates none
plugin-draw.objects-on-path
Opacity-mask commands — the paged.draw consumer of the C-28 protocol-58 door
plugin-draw.opacity-mask-commands
True Join — closePath / joinPaths over the v56 engine ops
plugin-draw.path-weld
Pattern editing v1 — a re-editable tile field (step-and-repeat artwork, NOT a pattern swatch)
plugin-draw.pattern-bake
·
Pen tool state machine (click/drag anchors, modifier matrix, close, commit)
plugin-draw.pen-machine
Pressure-aware pencil — variable-width strokes via outlineStrokeVariable
plugin-draw.pencil-pressure
Phase 4c pro path toolset — curvature/pencil/measure machines + simplify/join/average/offset/outline/pathfinder/gradient/arrowheads commands
plugin-draw.pro-path-toolset
Repeats v1 — radial / grid / mirror, and the repo's first ONE-undo build
plugin-draw.repeats
Select-same by fill / stroke / stroke-weight (Tier A — pure selection, no mutation)
plugin-draw.select-same
Shape Builder gesture tool — drag-unite / Alt-drag-subtract over pathfinderBoolean (Tier B)
plugin-draw.shape-builder
Stroke dash-pattern command presets (Solid/Dashed/Dotted/DashDot)
plugin-draw.stroke-dash-commands
Stroke panel as a declarative schema panel (W3.1 adoption)
plugin-draw.stroke-schema-panel
SVG import + export — the K-2 interchange round-trip (Phase 8)
plugin-draw.svg-io
Symbols v0 — a named artwork DEFINITION and instances that follow it
plugin-draw.symbols
Width, blend, lasso-select, parent-group cycling, parametric generators
plugin-draw.tool-wave-2

Plugin · pdf 6 features · 17% green

FeatureShellplugin.pdf
Editable text reconstruction — positioned glyphs → paragraphs of styled runs
plugin-pdf.editable-text
Editable vectors + PDF colours mapped to document swatches
plugin-pdf.editable-vector
Non-JPEG image import — PDFium bitmap decode for every filter chain
plugin-pdf.image-filters
crates/pdf-import writes the native `.paged` OCF the engine load path expects
plugin-pdf.native-ocf-writer
Open/read PDF files in the editor (.pdf importer → native document)
plugin-pdf.pdf-import
PDFium is the reader engine (pdf.js dropped)
plugin-pdf.pdfium-reader

Plugin platform 46 features · 70% green

FeatureParserRendererMutationCanvasCanvasShellPanelAPIDrawWebImageSheet
bindCreated — naming a to-be-minted id so a two-batch flow collapses to one undo (C-15)
plugin-platform.bind-created
Binding providers — a plugin serves the values a HOST panel binds to (ADR 023, B-26)
plugin-platform.binding-providers
Persistent blob store (host.blob, OPFS-backed, per-plugin quota)
plugin-platform.blob-store
Bundle lifecycle — activate(host) → BundleHandle.dispose()
plugin-platform.bundle-lifecycle
C-34 — the parts and scene-layer doors name their CALLER (the adapter, never the bundle)
plugin-platform.caller-gated-doors
Capability declaration — document read/write, rendering surfaces, editContext, network, clipboard
plugin-platform.capability-scopes
Capability-catalog vendoring + the single-source vocabulary gate (ADR 019)
plugin-platform.catalog-vendoring
System-clipboard door (host.clipboard — K-6 / S-14, text + tabular)
plugin-platform.clipboard-door
Command + keybinding contribution registration
plugin-platform.command-registration
Host credential store (host.secrets — D-11, reference-only, DELIBERATELY no get)
plugin-platform.credential-store
Data-provider registry (host.dataProviders — publish/consume RecordSet across plugins)
plugin-platform.data-providers
Plugin document metadata — x-paged Label carrier + get/setMetadata doors
plugin-platform.document-metadata
Edit-context registry (enter/exit, write-scope narrowing, breadcrumb)
plugin-platform.edit-context
Host file picker (host.shell.pickFile)
plugin-platform.file-picker
Plugin font registration + asset serving (@font-face parity)
plugin-platform.font-asset-serving
Frame-chain read + reflow events (host.document.frameChain, DocumentChangeEvent.reflow)
plugin-platform.frame-chain-read
plugin-template — the living proof a fresh clone builds on published canaries alone
plugin-platform.fresh-checkout-proof
Headless host conformance harness (createHeadlessHost)
plugin-platform.headless-host-conformance
Host-owned eyedropper — sample composited pixels into the document defaults (C-32)
plugin-platform.host-eyedropper
Host widgets + diagnostics sink (CodeEditor widget, problems lane)
plugin-platform.host-widgets
Placed-image resource provider door (host.images.claimImageResource — C-6 / I-06, v44 tile lane)
plugin-platform.image-resource
Importer/exporter registration (contribute.importer/exporter + Export Center)
plugin-platform.importer-exporter
Namespaced key-value store (host.storage — ungated, JSON values)
plugin-platform.kv-storage
Plugin manifest schema + CLI validator (paged-plugin validate)
plugin-platform.manifest-schema
Modal edit session (K-1) — entry gesture, content pointer, in-frame editing loop
plugin-platform.modal-edit-session
Native-document read/open door (host.nativeDocument — document.readNative / document.openNative)
plugin-platform.native-document
Object-type bake contract (live metadata -> derived IDML children)
plugin-platform.object-type-baking
K-13 — one entry gesture for canvas content (entry narrowed to a one-member union)
plugin-platform.one-entry-gesture
Overlay TEXT primitive on the tool-preview channel
plugin-platform.overlay-channel
Overlay contribution into the camera-space SVG surface
plugin-platform.overlay-registration
Panel-rail + icon contribution door (K-8 — rail launcher + sanitized SVG glyph)
plugin-platform.panel-rail-door
Panel contribution registration (expert-leaf React in v0)
plugin-platform.panel-registration
Per-element parentage read (host.document.parentOf)
plugin-platform.parent-of
··
Placed-asset bytes read door (host.assets.getPlacedImage — C-5 / I-04)
plugin-platform.placed-asset-bytes
·
Planar-region read door for bundles (host.document.planarRegions — K-11)
plugin-platform.planar-regions-door
Host save-file door (host.shell.saveFile)
plugin-platform.save-file
·
In-frame plugin scene layers (contribute.sceneLayer — vector/text/image/gradient/blend/shadow)
plugin-platform.scene-layer
The published plugin-sdk stays a SYNCHRONOUS module (no top-level await)
plugin-platform.sdk-bundle-shape
C-9 — caret/selection-offset read door for bundles
plugin-platform.text-caret-door
Text measurement door (host.text.measureString + editor metrics RPC)
plugin-platform.text-measurement
Tool contribution + gesture-handler registration surface
plugin-platform.tool-registration
Bundle wasm packaging + loader contract (bundle-realm glue path)
plugin-platform.wasm-packaging
Wire-compatibility type assertions (machine output ⊆ engine wire types)
plugin-platform.wire-compat-assertions
Wire-vendoring drift gate (sync-wire --check, hard in publish CI)
plugin-platform.wire-drift-gate
Worker spawn + SharedArrayBuffer (host.workers — K-3, off-main-thread compute)
plugin-platform.worker-pool

Plugin · publish (IDML/PDF interchange) 5 features · 20% green

FeatureShellplugin.publish
Corpus byte-identity sweep — 99/99 packages identical, and what it does NOT measure
plugin-publish.byte-identity-sweep
IDML interchange adapter (idml-import + idml-export crates, re-homed to plugin-publish)
plugin-publish.idml-adapter-crates
.idml exporter — the outbound half of the bundle (media.paged.publish.exporter.idml)
plugin-publish.idml-exporter
.idml importer via host.nativeDocument (@paged-media/publish bundle)
plugin-publish.idml-importer
Save-path defect class — nine defects between a parsed document and its bytes
plugin-publish.save-back-defects

Plugin · web 10 features · 80% green

FeatureRendererCanvasShellPanelWeb
Bake to native content — flatten a rendered web frame/flow to Paged page items (IDML/PDF export path)
plugin-web.bake-to-native
On-canvas vector rendering of web frames (Blitz/WASM → C-1 sceneLayer lane)
plugin-web.engine-rendering
Flow fragmentation — re-line-break one flow across N frames (ADR-020 ladder)
plugin-web.flow-fragmentation
Flow threading — one web source across a chain of publication frames
plugin-web.flow-threading
.html file importer — File/Open + drag-drop an HTML file into a web frame
plugin-web.html-importer
Insert web frame (one undo step, frame + source metadata)
plugin-web.insert-command
Source persistence in the document (IDML round-trip, foreign-open safe)
plugin-web.metadata-persistence
Flow/render readout — the last render/flow/bake outcome in the source panel
plugin-web.render-readout
·
WebFrameSource model + metadata envelope + diagnostics linter
plugin-web.source-model
Source panel — HTML/CSS editors, sandboxed preview, options, diagnostics
plugin-web.source-panel

Plugin · sheet 31 features · 93% green

FeatureShellAPISheet
paged.sheet serves the HOST Swatches and Character/Paragraph panels (ADR 023 phase D)
sheet.binding-providers
Exact-decimal numeric mode (D-6 spike) — seam proven, deferred to v2 opt-in
sheet.calc.decimal
Calculation engine — dependency graph, dirty recalc, f64 numeric core (D-6), coercion, error values
sheet.calc.engine
Iterative (circular) calculation — OFF by default (D-7), converges to a fixed point when enabled
sheet.calc.iterative
Row/col insert-delete wasm door — BLOCKED on xlsx-writer structural re-emission
sheet.calc.rewrite.structural-door
·
Dynamic-array spill (anchor + spill range,
sheet.calc.spill
Chart authoring — create a chart from the editor (page-side lowering)
sheet.chart.authoring
Charts — plotters-backed custom DrawingBackend → frozen ChartGeometry IR → grid view + paged.draw page lowering
sheet.chart.engine
Graph types — stacked column/bar + radar, axis titles, transpose rows/columns, c:grouping import
sheet.chart.graphs
Data-provider CONSUMER — source a sheet from a governed dataset (host.dataProviders)
sheet.data.consumer
Session edit ops — stable range sort (values lane), find over values/formulas, replace with skip reporting
sheet.edit.ops
Function library — 224 registered functions across 18 families, registry-driven dispatch
sheet.fn.library
Number-format engine + en/de locale (D-8)
sheet.format.engine
Western-European Latin locale tier (fr/es/it) — display formatting data rows
sheet.format.locale.latin-tier
Frozen panes — parse sheetViews/pane + render frozen rows/columns in-grid
sheet.grid.freeze.render
In-frame grid — sceneLayer render + K-1 modal select/edit (sheets-mode lite)
sheet.grid.inframe
Cell fill / text colours are MINTED swatches — a raw hex in a colorRef paints nothing
sheet.lower.cell-colour-swatches
Page-surface lowering — native <Table> + IR-v2 style map + measured column widths
sheet.lower.page
Live multi-frame pagination across the host frame chain
sheet.lower.paginate
Formula dialect parser — literals, A1 refs, operator precedence, functions, union/intersection, array literals, defined names, canonical print fixpoint
sheet.parser.dialect
paged.sheet bundle (media.paged.sheet) — manifest + activate + 3 panels + 7 commands + importer/exporter + engine boot
sheet.plugin.bundle
Function browser + workbook inventory + the styleFromCell command (workbook panel)
sheet.plugin.function-browser
Workbook persistence — host.blob (OPFS) + the metadata binding envelope
sheet.plugin.persistence
Workbook visual styles — xlsx parse -> deduped IR-v2 style table -> both surfaces (one resolver, cross-surface parity)
sheet.style.mapping
Excel structured tables / ListObjects — model + structured references + tableN.xml part
sheet.table.structured
get_range_styled — the workbook's REAL per-cell visual styles, as a door of its own
sheet.wasm.range-styled-door
Cell comments — preserve opaquely + display (grid indicator + panel list), preserve-first
sheet.xlsx.comments
Conditional formatting — xlsx part fidelity + lowering to style overrides
sheet.xlsx.condfmt
XLSX data validation — preserve byte-faithfully + read-only inventory (NEVER enforced)
sheet.xlsx.data-validation
Pivot tables — preserve-only, NEVER interpreted (publishing-first non-goal)
sheet.xlsx.pivot
XLSX I/O on the fidelity ladder — preservation invariant + import/export through the platform
sheet.xlsx.roundtrip

On this page