[step:Use isolated finite types to build a back-and-forth isomorphism]
Let $A \models T$ and $B \models T$ be countable. We construct an isomorphism $A \to B$ by back-and-forth. A finite partial map $f: \bar{a} \mapsto \bar{b}$ is called elementary if $\bar{a}$ and $\bar{b}$ satisfy the same $L$-formulas over $\varnothing$, equivalently $\operatorname{tp}^A(\bar{a}) = \operatorname{tp}^B(\bar{b})$.
Suppose $f: \bar{a} \mapsto \bar{b}$ is elementary and $c \in A$. Let $p(x_1,\dots,x_k,y) := \operatorname{tp}^A(\bar{a},c)$, where $k$ is the length of $\bar{a}$. By the previous step, choose a formula $\theta_p(x_1,\dots,x_k,y)$ isolating $p$. Since $A \models \exists y\,\theta_p(\bar{a},y)$, the formula $\exists y\,\theta_p(x_1,\dots,x_k,y)$ belongs to $\operatorname{tp}^A(\bar{a})$. Because $f$ is elementary, $B \models \exists y\,\theta_p(\bar{b},y)$. Choose $d \in B$ such that $B \models \theta_p(\bar{b},d)$. Since $\theta_p$ isolates $p$, we have
\begin{align*}
\operatorname{tp}^B(\bar{b},d) = p = \operatorname{tp}^A(\bar{a},c).
\end{align*}
Thus $f \cup \{(c,d)\}$ is elementary.
For the range-extension step, suppose $f: \bar{a} \mapsto \bar{b}$ is elementary and $d \in B$. Let
\begin{align*}
r(x_1,\dots,x_k,y) := \operatorname{tp}^B(\bar{b},d),
\end{align*}
where $k$ is the length of $\bar{b}$. By the previous step, choose a formula $\theta_r(x_1,\dots,x_k,y)$ isolating $r$. Since $B \models \exists y\,\theta_r(\bar{b},y)$, the formula $\exists y\,\theta_r(x_1,\dots,x_k,y)$ belongs to $\operatorname{tp}^B(\bar{b})$. Because $f$ is elementary, $A \models \exists y\,\theta_r(\bar{a},y)$. Choose $c \in A$ such that $A \models \theta_r(\bar{a},c)$. Since $\theta_r$ isolates $r$, we have
\begin{align*}
\operatorname{tp}^A(\bar{a},c) = r = \operatorname{tp}^B(\bar{b},d).
\end{align*}
Thus $f \cup \{(c,d)\}$ is elementary and contains $d$ in its range.
Enumerate the underlying sets as $A = \{a_1,a_2,\dots\}$ and $B = \{b_1,b_2,\dots\}$. Starting from the empty elementary map, alternate domain extensions for $a_i$ and range extensions for $b_i$. The union of the resulting increasing chain of finite elementary partial maps is a bijection $F: A \to B$. Since every finite tuple and its image have the same complete type, $F$ preserves and reflects every atomic formula and every relation symbol, and also preserves function symbols by applying elementary equivalence to formulas of the form $z = h(x_1,\dots,x_r)$. Hence $F$ is an $L$-isomorphism. Therefore $T$ is $\omega$-categorical.
[/step]