Pure pipeline: raw spec source -> OapiCodemode.Artifact.
Pure by design so that a build-time mix task and runtime registration are both thin callers of the same function.
Summary
Functions
@spec ingest(String.t()) :: {:ok, OapiCodemode.Artifact.t()} | {:error, term()}