# align-domain-model-and-money-contract — Implementation Summary ## Semantic Verification Date: 2026-08-25 Checked areas: - Future Cash Event contract: backend `UpcomingEventDto` now exposes nullable `projectedAmount` as canonical Money `{ currency, value }`; old event-level `amount` and `currency` fields were removed from the runtime OpenAPI schema and generated frontend types. - Money semantics: coupon, dividend and maturity events return Money in the source currency when currency and amount are known; offer and source events without currency return `null`, not zero or an invented currency. - Account access semantics: Upcoming Events still resolves account-scoped data through the existing current T-Bank connection access boundary; inaccessible accounts still short-circuit without reading upstream portfolio/events. - Portfolio terminology: runtime Portfolio behavior was not changed; docs and specs now distinguish Portfolio Snapshot, Portfolio Position, Currency Instrument Position and Cash Balance without altering route names or storage. - Frontend contract consumption: event page, account overview recent events, hooks, fixtures and generated schema now consume `projectedAmount` directly and keep the existing «Сумма неизвестна» UI for `null`. - Docs as-built state: glossary and affected feature/system docs describe the delivered Money contract and current-connection account accessibility without copying Proposal, Design or Tasks as a parallel SDD artifact. - Non-goals: routes, supported account types, token lifecycle, T-Bank upstream sources, cache TTLs, sorting, durable storage and broad module structure were not changed. Conclusion: The implementation matches the approved Proposal, Delta Specs and Design. The only public API contract break is the intended Future Cash Event projected amount change from separate nullable amount/currency fields to nullable Money.