Files
initiative/specs/019-combatant-row-declutter/data-model.md

1.3 KiB

Data Model: Combatant Row Declutter

Feature: 019-combatant-row-declutter Date: 2026-03-06

No Data Model Changes

This feature is a purely visual/interaction refactor within the web adapter layer. No domain entities, application state, or persistence formats are affected.

Existing entities (unchanged)

  • Combatant: id, name, initiative, maxHp, currentHp, ac, conditions, isConcentrating — no fields added, removed, or modified.

Existing callbacks (unchanged)

  • onAdjustHp(id: CombatantId, delta: number) — same signature, now triggered from popover instead of inline QuickHpInput.
  • onSetAc(id: CombatantId, value: number | undefined) — same signature, now triggered from click-to-edit instead of always-visible input.

UI State (component-local only)

New component-local state introduced in the HP popover (not persisted):

  • popoverOpen: boolean — whether the HP adjustment popover is visible.
  • inputValue: string — the draft delta value in the popover input.

New component-local state in the AC click-to-edit (not persisted):

  • editing: boolean — whether the inline AC edit input is visible.
  • draft: string — the draft AC value being edited.

These follow the same patterns as existing component-local state (EditableName.editing, ConditionPicker open state).