docs/solutions/logic-errors/2026-04-14-slate-public-transform-option-bags-must-match-runtime-supported-helper-options.md
wrapNodes(...), unwrapNodes(...), and liftNodes(...) still accepted broader
helper options in the runtime:
matchmodesplitvoidsBut the exported TypeScript option bags had been narrowed to mostly { at? }.
That made the public surface lie in three places at once:
Recover the public option bags to the runtime-supported shape instead of pretending the hidden options are gone.
For this slice that meant:
WrapNodesOptionsUnwrapNodesOptionsLiftNodesOptionsTransforms.*The engine already knew how to honor those options.
The real drift was at the public boundary, not in the transform bodies.
Once the exported types matched the callable runtime again, the docs and ledger could tell the truth without inventing fake narrow seams.
For Slate public transform recovery work:
explicit-skip; do not keep secret support and call it a cutHidden option bags are how a repo ends up green in behavior, red in types, and confused in docs all at once.