Let $(\mathcal{C},\mathcal{I})$ and $(\mathcal{D},\mathcal{J})$ be sites where $\mathcal{C}, \mathcal{D}$ are categories and $\mathcal{I}$ and $\mathcal{J}$ are Grothendieck topologies on $\mathcal{C}$ and $\mathcal{D}$ respectively.
I am trying to understand what it means to say a morphism of sites $(\mathcal{C},\mathcal{I})\rightarrow (\mathcal{D},\mathcal{J})$.
This should be atleast a functor $F:\mathcal{C}\rightarrow \mathcal{D}$.
As Grothendieck topologies comes with notion of covering, it is reasonable to ask that this functor $F$ is compatible with notion of covering. That is, for each covering $\{U_i\rightarrow U\}$ of $U$ in $\mathcal{C}$ the collection $\{F(U_i)\rightarrow F(U\})$ is a covering of $F(U)$ in $\mathcal{D}$.
As there is a condition on pullback, that is, for each covering $\{U_i\rightarrow U\}$ for $U$ in $\mathcal{C}$ and a morphism $V\rightarrow U$ in $\mathcal{C}$, the pull-back $\{U_i\times_U V\rightarrow V\}$ is a covering for $V$ in $\mathcal{C}$, we can ask that, $F$ is compatible with this notionof pullback, that is, for each covering $\{U_i\rightarrow U\}$ of $U$ in $\mathcal{C}$ and a morphism $V\rightarrow U$ in $\mathcal{C}$ we have $F(U_i\times_UV)\cong F(U_i)\times_{F(U)}F(V)$. As we have already asked that $\{F(U_i)\rightarrow F(U)\}$ to be a covering for $F(U)$, it will automatically follow that $\{F(U_i)\times_{F(U)}F(V)\rightarrow F(V)\}$ is a covering for $F(V)$.
This is what I think a morphism of sites should be like.
n-lab page on Morphism of sites asks that the functor is "covering flat". I think it is more than what I have asked above. I only know what is flat functor but could not track what is covering flat. I see that every flat functor has the property that I have mentioned above, but it is more than that.
So, Is my definition of morphism of sites not correct/reasonable?