Interop — маркированная producer/build boundary, не второй syntax внутри Topaz. Canonical source сохраняет Topaz imports, expressions, types, patterns и diagnostics. Foreign code допустим только в явно отмеченном host artifact/conversion example и не служит grammar authority.
Контракт и компоненты
Интеграция Topaz проходит на границе модулей, созданных артефактов или конвертации. Инструменты могут создавать Rust, Python, JavaScript, TypeScript и WASM, но синтаксис этих языков не становится допустимым синтаксисом Topaz.
Рабочий процесс
Оставляйте domain logic в checked Topaz modules. Пересекайте boundary через declared build target, generated ABI или отдельный converter. Topaz проверяется check/reference execution, host — собственным build/test; сравниваются только declared shared observables.
Текущая поддержка
Target builders, package/web ABI tests, Python differential fixtures и Lena Code snapshots проверяют маркированные границы. Primary failures остаются Topaz diagnostics; host output возможен как secondary detail. Canonical docs сканируют Topaz fences на foreign/forbidden forms.
Границы и ограничения
В языке нет import rust, встроенных выражений Rust/Python/JavaScript, неявного ABI или автоматического преобразования владения. Импорт ради побочного эффекта и пути к внешним модулям также не поддерживаются. Внешние конвертеры публикуют собственный список языковых пар и график выпусков.
Справочник команд
topaz check --root . src/main.tpz
topaz build --root . src/main.tpz --out-dir build