A migration function can't call other canisters, can it?

Is my assumption, that a migration function can’t (because it’s a non-async function) call anything outside the current canister, correct?

I’m thinking about the order of doing migrations, and from the yes answer to the above question, I would conclude that the order is irrelevant. Correct?

The forum’s AI answered:

Yes, your assumption is correct: a migration function in Motoko cannot call anything outside the current canister. Migration functions must be non-shared, non-async, and static—they cannot have side effects or perform inter-canister calls. Their purpose is purely to transform the stable state during an upgrade, and they operate only on the data within the canister itself (Motoko Language Manual: Migration expressions; Motoko Fundamentals: Function types).