# Zacus master partition table — merges ota_server's OTA layout (factory +
# ota_0 + ota_1 + otadata) with a dedicated LittleFS partition for assets
# (NPC phrases, scenario IR cache, …) and a SPIFFS region for esp-sr model
# blobs (`model`, slice 6 — flashed automatically as srmodels.bin by the
# esp-sr component CMake glue).
#
# Total target: 16 MB flash (Freenove ESP32-S3 N16R8).
# Layout (rough): 0x000000-0x020000 system, 0x020000-0x920000 apps (3×3 MB),
#                 0x920000-0xA20000 model (SPIFFS 1 MB, esp-sr models),
#                 0xA20000-0xF20000 storage (LittleFS 5 MB),
#                 0xF20000-0x1000000 unused (~0.87 MB headroom).
#
# App partition bumped 1.5 MB → 2 MB (2026-05-03) to give voice/STT/hints
# slices and esp-sr integration ~25 % free space margin. OTA dual-bank
# preserved (factory + ota_0 + ota_1 all 2 MB → rollback symmetry intact).
#
# Bumped 2 MB → 3 MB (2026-06-10, display_ui phase 2b): LVGL + LovyanGFX +
# the original UI fonts left only 5 % app headroom; later UI phases (camera
# preview, more fonts, effects) need room. NVS/otadata/phy offsets unchanged
# (Wi-Fi creds survive); ota_0/ota_1/model/storage shift — LittleFS content
# is lost on reflash (auto-reformats; re-push scenario via POST /game/scenario).
#
# Name,     Type, SubType, Offset,   Size,    Flags
nvs,        data, nvs,     0x9000,   0x6000,
otadata,    data, ota,     0xf000,   0x2000,
phy_init,   data, phy,     0x11000,  0x1000,
factory,    app,  factory, 0x20000,  0x300000,
ota_0,      app,  ota_0,   ,         0x300000,
ota_1,      app,  ota_1,   ,         0x300000,
model,      data, spiffs,  ,         0x100000,
storage,    data, littlefs,,         0x500000,
