result), a multi-output function via a TypedDict return, and a defer=True function you save by hand — with a re-run showing the decorator is idempotent.
Expected output
name first: if the source and schema are unchanged it returns the existing transformation untouched, if they changed it updates, and if it doesn’t exist it creates. Pass explicit inputs= / outputs= to override inference.
See also
CRUD
The imperative create / fetch / update / delete path.
Run & I/O types
How IOType maps Python types, and reading run results.
Reference
from_function inference rules in full.