# Domain Core 0.2.0-alpha

The domain core is the first step from a visual prototype toward a real application.

## Entities

- `User` — participant identity abstraction.
- `Cell` — one cell of a mandala and its acquisition data.
- `Mandala` — aggregate containing cells and lifecycle state.

## Lifecycle

```text
draft → active → trembling → complete → destroying → archived
```

For a 2×2 test mandala, the third acquired cell enters `trembling` and the fourth completes it.

## Important rule

The UI is not the source of truth. The domain model owns cell state and lifecycle rules.

## Scope of 0.2.0-alpha

Implemented:
- configurable grid;
- cell occupancy;
- owner/message snapshot;
- progress;
- trembling threshold for the current 2×2 test;
- completion;
- destroyer assignment based on acquisition order;
- destruction/archive lifecycle;
- reset for a new cycle.

Not yet implemented:
- database persistence;
- Telegram user identity validation;
- server-side concurrency control;
- Pix Economy;
- Pixel Ledger;
- Payments;
- Patterns.

## Server boundary

The backend persists Domain Core state but does not make SQLite itself the source of business rules. Repositories translate between persistence and domain/application services.
