50 public IEnumerable<int> VisiblePageIndices => this.Pages.Select((p,i) => (p,i)).Where(t => t.p.IsVisible).Select(t => t.i);
sealed record KycProcessState(IReadOnlyList< KycPageState > Pages, KycNavigationSnapshot Navigation, bool ApplicationSent)
Root aggregate-like snapshot passed through pure functions.
KycFlowState
High-level flow states for the KYC process UI.
sealed record KycPageState(string Id, bool IsVisible, IReadOnlyList< KycFieldState > FieldStates)
Immutable page state abstraction for domain calculations (validation, navigation decisions).
sealed record KycFieldState(string Id, bool IsValid, string? Value)
Immutable field state used by pure domain operations.
sealed record KycNavigationSnapshot(int CurrentPageIndex, int AnchorPageIndex, KycFlowState State)
Navigation snapshot capturing minimal mutable UI navigation state.