An appropriate notion of morphism between finitely complete categories $C$, $D$ is a left exact functor, or a functor that preserves finite limits (also called a lex functor, a cartesian functor, or a finitely continuous functor). A functor preserves finite limits if and only if:

it preserves terminal objects, binary products, and equalizers;

it preserves terminal objects, fibers, and binary products;

it preserves terminal objects and binary pullbacks.

Since these conditions frequently come up individually, it may be worthwhile listing them separately:

$F: C \to D$preserves terminal objects if $F(t_C)$ is terminal in $D$ whenever $t_C$ is terminal in $C$;

$F: C \to D$preserves binary products if the pair of maps

exhibits $F(c \times d)$ as a product of $F(c)$ and $F(d)$, where $\pi_1: c \times d \to c$ and $\pi_2: c \times d \to d$ are the product projections in $C$;

$F: C \to D$preserves equalizers if the map

$F(i): F(e) \to F(c)$

is the equalizer of $F(f), F(g): F(c) \stackrel{\to}{\to} F(d)$, whenever $i: e \to c$ is the equalizer of $f, g: c \stackrel{\to}{\to} d$ in $C$.