Suppose that $A,B$ are smooth ($\mathrm C^\infty$) manifolds, and denote by $\hom(A,B)$ the set of $\mathrm C^\infty$-maps $A \to B$. It is a perfectly well-defined set, but often one wants more. For example, I regularly would like to talk about (small, or maybe infinitesimal) variations of a smooth map $A \to B$, and I regularly want to talk about smooth functions on the space of maps. Which is to say, there are many good reasons to want to have some sort of "infinite-dimensional manifold" which I will call $\newcommand\Maps{\underline{\operatorname{Maps}}} \Maps(A,B)$, whose set of points is $\hom(A,B)$.
A standard way of defining $\Maps(A,B)$ is to choose some regularity ($\mathrm C^\infty$ ends up not being a good choice, as the construction will not yield something with an inverse function theorem) and to try to first topologize and then assign a "smooth structure" to the set of functions $A\to B$ with the prescribed regularity. This works well for certain analytic applications, and allows for explicit constructions. But it has the disadvantage of making all facts demand on some real analysis, and the only thing I'm worse at than real analysis is complex analysis.
A different approach is to say that what "possibly-infinite-dimensional manifold" means is presheaf on the category of manifolds, or maybe restrict just to some well-behaved class of presheaves (e.g. sheaves for your favorite Grothendieck topology). Then you could define $\Maps(A,B)$ to be the sheaf
$$ \Maps(A,B) = \hom( - \times A, B) $$
This definition answers some questions immediately. For example, there is a sheaf
$$ \mathbb R = \hom (-, \mathbb R) $$
and a "smooth $\mathbb R$-valued function on $\Maps(A,B)$" is precisely a natural transformation of sheaves $\Maps(A,B) \to \mathbb R$. Note that the set of smooth $\mathbb R$-valued functions is actually an $\mathbb R$-algebra, because there is a product of sheaves
$$ \Maps(A,B)^{\times 2} = \hom(- \times A,B)^{\times 2} $$
(right hand side is product of sets), and also the addition and multiplication maps $\mathbb R^{\times 2} \to \mathbb R$ are smooth. So we get an algebra $\mathrm C^\infty(\Maps(A,B))$ (which is even itself an infinite-dimensional smooth manifold in the same sense).
OK, so I've proposed some definition of "the smooth manifold $\Maps(A,B)$". I have "families of smooth maps", because I can map into $\Maps(A,B)$ from, say, curves, or spaces. What I really want, in addition to infinitesimal variations, are flows. So I'd like a "tangent bundle $\mathrm T (\Maps(A,B))$".
Here are at least three definitions I could think of:
There is a sheaf on manifolds called "$\operatorname{spec} \mathbb R[\epsilon]/(\epsilon^2)$". Actually, it's easiest to define as a cosheaf; whether by definition or theorem, it satisfies that, for any finite-dimensional manifold $M$, $$ \Maps( \operatorname{spec} \mathbb R[\epsilon]/(\epsilon^2) \to M ) = \text{the total space of } \mathrm T M $$ The bundle structure on $\mathrm T M$ corresponds to the unique inclusion $\lbrace \text{pt.}\rbrace \to \operatorname{spec} \mathbb R[\epsilon]/(\epsilon^2)$; the vector bundle structure from the endomorphisms $\Maps(\operatorname{spec} \mathbb R[\epsilon]/(\epsilon^2) \to \operatorname{spec} \mathbb R[\epsilon]/(\epsilon^2)) = \mathbb R$. So one could define: $$\mathrm T (\Maps(A,B)) = \Maps( \operatorname{spec} \mathbb R[\epsilon]/(\epsilon^2), \Maps(A,B)).$$
One could reasonably say that a "vector bundle on $\Maps(A,B)$" should be determined by (indeed, the same as) its pulled-back vector bundle along any map $S \to \Maps(A,B)$. Given $f: S \to \Maps(A,B)$, which is to say $f\in \hom(S\times A, B)$, one can define an infinite-dimensional vector bundle $V \to S$ by saying that for any open set $U \subseteq S$, $$ \Gamma_U(V) = \Gamma_{U \times A}(f^\ast \mathrm T B) $$ This is the way I usually think about the tangent bundle to $\Maps(A,B)$. More precisely, I usually define $\mathrm T(\Maps(A,B))$ by saying that over each point $f\in \hom(A,B)$, the fiber is $\mathrm T_f\Maps(A,B) = \Gamma_A(f^\ast \mathrm T B)$, and hoping that my readers don't ask me to explain in what sense these fibers glue together into a smooth bundle.
I have above defined an algebra $\mathrm C^\infty( \Maps(A,B))$. A tangent vector could be defined as a "point derivation": a map $v : \mathrm C^\infty(\Maps(A,B)) \to \mathbb R$ that satisfies that $v(\alpha\beta) = v(\alpha) \, \beta(f) + \alpha(f)\, v(\beta)$ for some $f\in \operatorname{spec} \mathrm C^\infty( \Maps(A,B))$ (or maybe just for those $f \in \hom(A,B)$). More generally, you could give this a smooth structure by explaining the notion of "derivation" internal to the world of sheaves. I think equivalently, for each $f : S \to \Maps(A,B)$, there is a restriction map $f^\ast: \mathrm C^\infty(\Maps(A,B)) \to \mathrm C^\infty(S)$, and you can consider the space of derivations over this map. It would be the space of sections of $f^\ast \mathrm T (\Maps(A,B))$, and this data should glue together into some form of "vector bundle".
My question is:
Are definitions 1,2,3 naturally equivalent? If not, which is best, and why? Or should I abandon all three in favor of some other definition?
My reason for asking, in case it influences your answer, is that I would like to understand in what sense the mapping space between two Q-manifolds is an infinite-dimensional Q-manifold, because one form of perturbative quantum field theory can be understood as the study of deformations of such infinite-dimensional Q-manifolds (in some space of "non-commutative Q-manifolds"). (A good place to read definitions of words like "Q-manifold" is Rajan Mehta's thesis. A good place to read about this version of quantum field theory is a short paper by Dmitry Roytenberg.) I think I know how to answer this "Q-manifold" question in any of approaches 1,2,3, although I haven't thought about the details, and I do not know how to answer it in more analytical approaches. But I'm also interested in related "P-manifold" questions, which are harder, so I'd like to know exactly how cavalier I can be with my infinite-dimensional manifolds.