How do we define quasi-coherent sheaves on schemes?
Say we start by defining the category of affine schemes Aff as CRing$^{op}$ (the opposite category of unitary commutative rings). In this context we have an obvious way to define quasi-coherent sheaves:
A quasi-coherent sheaf on an affine scheme X=Spec A is just an A-module.
If we now define schemes as presheaves on Aff (satisfying some condition), how do we define what a quasi-coherent sheaf is? The same question applies also to the operations of pushforward and pullback, which in Aff have obvious definitions.