re: XCM, I think that the approach of “Dialects” through Xcm::Transact
could be a viable approach to interfaces: XCM Dialects: plugging into XCM to create standardized and predictable API surfaces
Runtime APIs aren’t trivial to version or engage with via RPC. Regardless of the approach, I think it would be nice to have crates published which can define interfaces that are plug & play with construct_runtime!
.