Converts the workflow's graph to a Flow AgentSpec and persists it.
Losses are logged, not swallowed. The converter reports what it could not carry across — human steps, unresolvable agents, run-specific inputs. Dropping that silently would hand someone a workflow missing an approval they believed they had saved, and they would only find out by running it. The save still proceeds: a workflow that is 90% right and says so is more useful than a refusal, and the losses are surfaced to the caller by the operation above.
Base so hosts can resolve an implementation without importing this package directly.