This is a summary of various personal, subjective (= asie's) thoughts on how ZXT extensions should be designed. Eternal WIP
Extension composition: I believe in composition of multiple extensions over big do-it-all extensions, as this allows implementations to be more truthful about what they support.
Minimize patching: If an extension does multiple things which require patching multiple areas of ZZT's source code, it might be good to try and split the surface area across multiple extensions which do smaller things.