feat(engine): условия диалогов v2 — whenVars/hasItem + чистый evalConditions
- DialogueWorld { hasItem } — предикаты мира (сумка) инъекцией; без world
  hasItem-условия ложны.
- DialogueConditions: whenVars (несколько переменных, AND) и hasItem;
  легаси-whenVar не тронут.
- evalConditions/hasConditions — чистые функции для квест-стадий, dry-run
  и валидатора; рантайм делегирует проверку им.
- Тесты: AND по переменным, hasItem с/без world, evalConditions на чистом
  GameState; доки ui-and-dialogue.md + practices.md.

Co-Authored-By: Claude Code <noreply@anthropic.com>
1 parent 415fea6 commit c5fea2f9f5c990e9c830124ff35015f88afa4307
@root root authored 4 hours ago
Showing 5 changed files
View
docs/engine/practices.md
View
docs/engine/ui-and-dialogue.md
View
packages/engine/src/dialogue/DialogueRunner.ts
View
packages/engine/src/dialogue/__tests__/DialogueRunner.test.ts
View
packages/engine/src/index.ts