- Use `external` declarations for JavaScript library interop — never use `dynamic` for typed APIs.
- Use `@JsExport` to expose Kotlin functions to JavaScript consumers.
- Use `@JsModule` and `@JsNonModule` for npm package imports.
- Avoid JVM-specific APIs — use `kotlinx` multiplatform libraries.
- Use `kotlinx.serialization` with JSON for data exchange with JavaScript.
- Use `dynamic` type only for truly untyped JavaScript interop as a last resort.
- Use `kotlinx.coroutines` with `Promise` integration for async JavaScript interop.
- Prefer `kotlin.js.Promise` wrappers for exposing async APIs to JavaScript consumers.