I would think the modular UI components would be most challenging, as you'd have to make them interoperable with each other.
Could abstract the complexity of mapping ActivityStreams verbs + compatibility to UI components and side effects with a visual drag-n-drop tool.
If there was a standard way to list capabilities across fediverse software, you could also transform objects to ensure compatibility and limit delivery to compatible instances.
The federation.md thing is nice, but its not machine-readable. If we solved this, we could make the fediverse much more efficient!