# Точка входа `r2d` — `index.js`

Короткий алиас для игр и библиотек: `import $ from 'r2d'` отдаёт **тот же**
объект `$`, который уже создан загрузчиком, а не новый экземпляр.

```js
import $ from 'r2d';

$.ready(() => {
    $('<player>', { id: 'hero' }).appendTo($.world);
});
```

---

## 1. Зачем

Игровой код может писать модули с явным импортом (`import $ from 'r2d'`) вместо
глобального `$`: так видно зависимости, работает автодополнение и не нужен
`globalThis`. Экземпляр API при этом один — состояние не расходится.

## 2. Что экспортируется

`$` (он же `globalThis.$`), и он же по умолчанию. Ничего больше: модуль не
создаёт подсистем, а только отдаёт существующий объект.

## 3. Ограничения

* **до `bootstrap.js` объекта нет**: если модуль импортировать раньше, `$` будет
  `undefined`; в движке порядок гарантирован;
* **второго экземпляра не будет**: для независимого API зовите `createApi()`
  напрямую (см. [api.md](highlevel/api));
* **короткого алиаса `nk` в модуле нет**: он выставлен только в `globalThis`.
