that was a great explanation - thanks
i dont think there needs to be such broad models - it can be maximally generic
a forge is nothing but a collection of common project management tools - tools which already existed separately long before forges were popular - ie: forges offer nothing unique - they merely unify what are truly distinct tools, into a common, convenient interface - just because the model is “everything that forges do”, that does not imply that anyone needs to use any forge, or use it for “everything”
for example, a stand-alone bug tracker could fork or mirror tickets from a forge and implement and respond to whichever forge-fed requests are related to managing tickets, and ignore any other requests - a mailing list, forum, or “social” website could implement and respond to whichever forge-fed requests are related to subscribing to the forge activity stream or tickets, and for posting comments to tickets, and ignore any other requests
i suppose im saying that each service/client/peer could define their own model, drawn from the common set of “things that forges do”
i still think that all of that can be condensed into a few simpler questions, which will satisfy most people, for the core feature-set:
Q1: should it support only git concerns?
A: NO
Q2: should it support only VCS concerns?
A: NO
Q3: should it support everything that forges commonly do?
A: YES
Q4: should it support anything that forges do not commonly do?
A: NO
Q5: should it expect that any node will support all features?
A: NO
Q6: should it support (“tolerate”, actually) arbitrary extensions for “everything else”?
A: YES
then it is simply left to forges to converge upon the common set of Q3 features; and let the community develop and support the Q6 features, and let every (partially) compatible node define their own models/use-cases
in case it is not obvious, i will add that Q5 and Q6 are non-negotiable - a federated system can not rely on any node to be fully or even partially compliant - it must tolerate them being offline, insane, or outright hostile