---
id: TASK-0001
title: Зафиксировать MVP-архитектуру диаблоида на FishNet
summary: Описать каноническую архитектуру MVP, включая разделение player/world, authority, сетевые границы, детерминизм и связи между подсистемами.
priority: Highest
area: architecture
owner: unassigned
created: 2026-03-30
updated: 2026-03-30
execution_time: 1d
depends_on: []
canonical_docs:
  - docs/tasks/Index.md
  - docs/tasks/_template.md
related_files:
  - Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs
  - Assets/Features/VoxelWorld/Runtime/VoxelWorldAtlas.cs
  - Assets/Features/VoxelWorld/Scenes/VoxelWorldTestScene.unity
---

# TASK-0001 - Зафиксировать MVP-архитектуру диаблоида на FishNet

## Status

Статус задачи ведется в `docs/tasks/Index.md` и является каноническим там.

Допустимые значения статуса:

- `BackLog`
- `ToDo`
- `InProgress`
- `Review`
- `Done`

## Why

Без общей архитектуры легко получить несовместимые решения между генерацией мира, сетевым кодом, сохранениями, персонажами, инвентарем и AI. Эта задача должна зафиксировать правила MVP до начала активной реализации.

## Expected Outcome

Появляется документ или набор canonical notes, где определены: модель мира и игрока, границы ответственности сервера и клиента, правила детерминизма по seed, формат идентификаторов чанков и сущностей, а также зависимости между будущими системами.

## Current Context

В проекте фокус полностью смещен на воксельный генератор в `Assets/Features/VoxelWorld/*`. Архитектурные решения должны опираться на эту ветку как на каноническую.

## Source Of Truth

- `docs/tasks/Index.md`
- код в `Assets/Features/VoxelWorld/*`
- явные решения человека по MVP после создания этой задачи

## Read First

- `docs/tasks/Index.md`
- `Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs`
- `Assets/Features/VoxelWorld/Runtime/VoxelWorldAtlas.cs`
- `Assets/Features/VoxelWorld/Scenes/VoxelWorldTestScene.unity`

## Scope In

- зафиксировать high-level архитектуру MVP
- описать authority model для FishNet
- определить канонические идентификаторы игрока, мира, чанка, врага и предмета
- определить границы между runtime world data, player save data и session state

## Scope Out

- полноценная реализация подсистем
- контентная балансировка

## Constraints

- сохраняйте воксельный worldgen как стартовую точку, если человек явно не меняет направление
- предпочитайте минимальную архитектуру, достаточную для MVP
- все последующие задачи должны опираться на решения из этой задачи

## If You Find Drift

- если текущий код worldgen конфликтует с новой сетевой моделью, фиксируйте конфликт отдельно
- не ломайте существующий editor tooling без отдельного решения

## Suggested Approach

1. Описать целевой gameplay loop MVP и обязательные подсистемы.
2. Зафиксировать границы server authority, client prediction и persistence.
3. Связать решения с конкретными task-файлами и артефактами кода.

## Acceptance Criteria

- есть каноническое описание архитектуры MVP с понятными границами подсистем
- определено, где живут данные мира, игрока, сессии и чанка
- определено, какие части обязаны быть детерминированными по seed

## Verification

- вычитка документа на непротиворечивость с `Index.md`
- проверка, что все downstream task-файлы опираются на решения из этой задачи

## Risks / Open Questions

- без раннего решения по authority возможно придется переписывать боевую систему и AI

## Human Decisions Needed

- none currently

## Decision Log

- `2026-03-30` - архитектурную задачу вынесли в отдельный highest-priority task перед реализацией сетевых и боевых систем.

## Handoff Notes

После фиксации архитектуры обновить `canonical_docs` в downstream task-файлах, если появится новый канонический документ.
