ERC-20 like Standard for Polkadot

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!.