West marches mode

Целевой формат кампании: один общий мир, ad-hoc пачки игроков, несколько DM параллельно, 30+ участников, асинхронное игровое время. Что из этого уже работает, а что требует отдельных инструментов.


Что работает сегодня

В проде роль dm уже multi-instance: несколько аккаунтов с role='dm' могут сосуществовать в одной кампании (spec-006 + spec-031 shared_world_editing, миграция 031). Каждый DM видит полный мир, создаёт ноды, ведёт encounter'ы.

Это закрывает базовый случай «два DM, одна кампания». Но для настоящего west marches с 5+ DM и 30+ игроками этого мало.


Чего не хватает

Координация DM

Сейчас DM'ы координируются голосом / Telegram. В системе нет:

  • Общего взгляда «кто что вёл» (какой DM вёл какую сессию).
  • Лога DM-операций с авторством — dm_audit_log (целевая модель, пока не реализован; см. audit-log-and-safety.md).
  • DM-заметок видимых только другим DM'ам (visibility dm_only).

Общий календарь

Нет инструмента «запланировать сессию и не забукировать то же время». West marches работает когда игроки собираются ad-hoc; DM нужен не жёсткий календарь, а лайтовый «availability board»: DM объявляет «в воскресенье ищу пачку», игроки откликаются.

Сейчас это делается в Telegram. В продукте нет ни сущности «запланированная сессия», ни UI для сборки пачки.

Партии как UI-агрегация

В системе нет party как отдельной сущности. В проде пачка — это session.participants (список PC привязанных к конкретной сессии). Партия в west marches — временная группа, живущая только в контексте одной вылазки; ей не нужна постоянная сущность, но нужен UI для быстрой сборки:

  • Выбрать участников по свободному времени.
  • Автозаполнить session.participants без ручного перечисления.
  • История «с кем ходил Маркус» — уже есть через session.participants, нужен только вид.

В целевой модели parties — UI-агрегация, не security-граница (конституция §3). Таблица party + party_members зарезервирована в миграции 008a, но не используется (DEBT-002).

Асинхронный per-actor clock

Самая фундаментальная штука west marches: один игрок в день 5 петли, другой в день 12 — одновременно. Сейчас модель это поддерживает (каждый PC имеет свой фронтир через session.participants), но нет:

  • UI «где кто сейчас во времени» — temporal state viewer.
  • Явной проверки временных конфликтов (два PC в одном месте в разные дни — при этом в одной «сессии», что логически странно).
  • Инструмента DM для «продвинуть PC во времени отдельно от пачки» (даунтайм, личный квест).

Это закроют spec-035 (DM session control) и spec-036 (movement timeline).


Параллельные сессии и rebroadcast

В west marches несколько сессий могут идти параллельно в реальном времени (разные пачки, разные DM). Realtime-транспорт уже есть (миграция 117), но нет:

  • Фильтрации feed'а «только моя сессия».
  • Механики «закрытого» канала сессии — события до «публикации».

Это часть live-broadcast.md и visibility-and-sandbox.md.


Социальные нормы и soft infrastructure

Часть west marches работает вне инструмента: традиция «кто ходил — тот пишет рекап», распределение DM-нагрузки, правила что делать если два игрока хотят играть в одно время разными пачками. Продукт не заменяет эти нормы, но должен их поддерживать: удобная форма рекапа, видная история кто с кем ходил, DM-заметки.


См. также: concepts/roles-and-clients.md (роли и multi-DM), tick-time-model.md (per-actor clock), live-broadcast.md (параллельные трансляции).