3.2 KiB
3.2 KiB
PR-10d Bank Composition Family Policies and Section Coordinator
Domain owner: docs/studio
Cross-domain impact: docs/packer
Briefing
Introduce the section-scoped coordinator for Bank Composition, built around StudioFormSession<BankCompositionDraft>, plus the first family-specific draft factories and policies.
This is the slice where the section starts behaving like an actual editor instead of just a shell.
Objective
After this PR:
Bank Compositionhas a section-scoped coordinator built aroundStudioFormSession<BankCompositionDraft>;- the section can enter edit mode and maintain draft state;
- draft state can transfer rows between
availableandselected; - right-list ordering can update draft state;
- family-specific rules are applied through draft factories and policies, not component-local logic.
Dependencies
../decisions/Bank Composition Middleware and Staged Editing Decision.md./PR-10a-bank-composition-details-dto-projection.md./PR-10b-bank-composition-base-components.md./PR-10c-bank-composition-section-shell-and-form-session-integration.md
Scope
- add
BankCompositionDraft - add the section-scoped coordinator around
StudioFormSession<BankCompositionDraft> - add family-specific draft factories
- add family-specific policies for:
- transfer eligibility
- reorder effects
- capacity usage
- hard-limit blockers
- publish one section-facing view model for shell, lists, meter, blockers, and hints
Non-Goals
- no public
workspaceBuscontract yet - no packer apply persistence yet
- no final cross-domain mutation messages yet
Execution Method
- Add the draft model for bank composition.
- Add the section-scoped coordinator around
StudioFormSession. - Add the first family-specific policy/factory implementations.
- Route dual-list and meter inputs through the coordinator view model.
- Support edit, reset, and cancel with real draft recomputation.
- Keep apply stubbed or disabled until the write path lands.
Acceptance Criteria
- the section can enter editing mode and maintain draft state
- dual-list moves update draft state through the coordinator
- right-list ordering updates draft state through the coordinator
- meter state reflects policy-driven capacity calculations
- tile and sound family differences are modeled through policies, not through component branches
resetandcancelwork throughStudioFormSession
Validation
- unit tests for
BankCompositionDraft - unit tests for tile and sound policy behavior
- unit tests for transfer blocking and reorder effects
- unit tests for
StudioFormSessionintegration and draft lifecycle
Affected Artifacts
prometeu-studio/src/main/java/p/studio/workspaces/assets/details/...- family-specific policy and draft-factory classes under
prometeu-studio/src/main/java/p/studio/workspaces/assets/... - tests for coordinator and policy behavior
- cross-domain touchpoint: any details data gaps exposed by the new policy logic