A single helper, pointer.To(value any) any, that returns a pointer to its argument (and returns the value unchanged if it is already a pointer or interface). Part of rosetta.
What matters here
To is reflection-based and untyped (any in, any out). It exists for cases where the type isn't known at compile time (e.g. building values dynamically for the schema engine). When the type is known, prefer the generic convert.Pointer[T](v) *T, which is type-safe and avoids reflection — convert owns the generic pointer/dereference helpers (Pointer, Element), not this package.
Already-pointer and interface inputs pass through unchanged, so To is idempotent — calling it on a *T returns the same *T, not a **T.
Package pointer returns a pointer to a value whose type is not known at
compile time.
To is reflection-based and untyped — any in, any out — which is what makes it
usable when building values dynamically for the schema engine. Inputs that
are already pointers or interfaces pass through unchanged, so To is
idempotent and never produces a pointer to a pointer.
When the type is known at compile time, prefer convert.Pointer, which is
generic, type-safe, and skips the reflection entirely. The convert package
owns the typed pointer helpers; this package exists only for the untyped
case.