All Module Source Objects should have a prototype of %AbstractModuleSource%.prototype.
Why "should"? Per RFC 2119:
3. SHOULD This word, or the adjective "RECOMMENDED", mean that there
may exist valid reasons in particular circumstances to ignore a
particular item, but the full implications must be understood and
carefully weighed before choosing a different course.
I think it should (pun not intended) either say "must" or clarify when it should be different