Root cause: The mops canister expects the base package name "core" but receives "core@1".
Fix: Extract base name (before @) when querying mops API, while preserving full name in lock file and moc args for imports like mo:core@1/Iter.
Solution implemented:
- Added
dep_base() helper: "core@1" → "core"
- Updated 4 mops service call sites to use base name
- Kept full name everywhere else (matches TypeScript implementation)
Tested with "core@1" = "1.0.0" - now downloads and compiles successfully.
PR: #12