So I was reading about the ZFC axioms, and apparently some of them are actually "axiom schemas." For example, there is the "axiom schema of specification," which basically says that give a set $A$ and a formula $\phi(x)$, a subset of $A$ exists where all the elements satisfy $\phi(x)$.
This is apparently not one axiom, but a schema of infinitely many axioms, because there is one axiom for every $\phi(x)$. So that must mean that for whatever reason, just letting $\phi(x)$ be an arbitrary formula does not make a valid axiom. So are there rules for what an axiom can say?
So my questions are: Why is this not allowed to be one axiom? What are the rules for what an axiom is allowed to be? And why?
In ZF, all expressions must ultimately be a syntactically valid, finite combination of variable names, the $\forall$ quantifier, parentheses, the logical operations $\lnot$ and $\lor$, $=$ and finally $\in$. That's it.
Of course, in practice we have a lot of other symbols, like $\subseteq$ and $\exists$, but technically they are all defined as specific shorthands for combinations of the symbols above.
There is no way to use these to say $\forall \phi(\phi\text{ is a formula}\to\ldots)$, the way one might want to do to make the axiom schema into actual axioms.