General schemes
Arbitrary schemes over a commutative base ring $\mathbb k$ with unit are instances of the abstract type
Scheme — TypeScheme{BaseRingType<:Ring}A scheme over a ring $𝕜$ of type BaseRingType.
Morphisms of schemes shall be derived from the abstract type
SchemeMor — TypeSchemeMor{DomainType, CodomainType, MorphismType, BaseMorType}A morphism of schemes $f : X → Y$ of type MorphismType with $X$ of type DomainType and $Y$ of type CodomainType.
When $X$ and $Y$ are defined over schemes $BX$ and $BY$ other than $Spec(𝕜)$, BaseMorType is the type of the underlying morphism $BX → BY$; otherwise, it can be set to Nothing.
Irreducible components
irreducible_components — Methodirreducible_components(X::Scheme)Return the irreducible components of $X$ with their reduced structure.
Note that the irreducible components are defined over the base ring of $X$. An irreducible component may split into several irreducible components after a base change, e.g. a field extension.
Change of base
base_change — Methodbase_change(phi::Any, X::Scheme)For a Scheme $X$ over a base_ring $𝕜$ and a map $φ : 𝕜 → R$  we compute $X' = X ×ₖ Spec(R)$ and return a pair (X', f) where  $f : X' → X$ is the canonical morphism.
base_change — Methodbase_change(phi::Any, f::SchemeMor;
    domain_map::SchemeMor, codomain_map::SchemeMor
  )For a morphism $f : X → Y$ with both $X$ and $Y$ defined over a  base_ring $𝕜$ and a map $φ : 𝕜 → R$ return a triple (a, F, b)  where $a : X' → X$ is the morphism from base_change(phi, X),  $b : Y' → Y$ the one for $Y$, and $F : X' → Y'$ the induced  morphism on those fiber products.