Manufactures an Ecto migration source projection from AshR2RML.SemanticIR.
The renderer is pure CONSTRUCT: it returns source text and never runs a migration. Unknown Ash-to-Ecto type projections fail closed. Base tables are created before foreign-key constraints so dependency cycles do not depend on accidental resource ordering.
Summary
Functions
@spec render(AshR2RML.SemanticIR.t()) :: {:ok, String.t()} | {:error, AshR2RML.Refusal.t()}