All the types that implement this protocol.
Transform a source graph into a target graph.
@type t() :: term()
@spec transform(t(), source :: any(), target :: any(), opts :: keyword()) :: {:ok, any()} | {:error, String.t()}