The engine’s type vocabulary is captured. Introspection now records the types Postgres and its installed extensions provide (pg_catalog base, range, and multirange types, arrays included) as NativeTypes in the snapshot, spelled in the model’s canonical names. With a captured vocabulary, a plan can verify every type the project references — pg_catalog.tsvector and text[] columns on imported schemas now resolve instead of blocking, and a reference to a type nothing provides is reported at plan time.
Extension-provided types record their provenance. A type an extension installs (e.g. citext, arrays included) carries ProvidedBy, so a plan that drops the extension accounts for everything still using its types.
pg_catalog is reported as a schema Postgres provides, alongside public.