Outcome
Deliver the complete user-facing connection lifecycle against the Go server through pure session/actions and generated contracts.
Scope and invariants
- Server profile/identity selection, connect/cancel, TLS trust/identity-change confirmation, version/capability diagnostics, authentication, account recovery handoff where supported, and secure credential storage policy.
- Character list, creation, selection, protected deletion, loading/attachment, logout, disconnect, reconnect/resume, and server change.
- Model every transition as cancellable state with one owner; disable/reject invalid duplicate actions and preserve actionable errors.
- Keep secrets out of UI logs, chat logs, crash reports, and non-secret settings.
- Support keyboard/mouse/controller navigation, text input/IME, scaling, focus recovery, and accessibility semantics.
Acceptance criteria
- Headless and graphical tests cover success plus disconnect/cancel/error at every transition, slow responses, duplicate clicks, stale revisions, identity change, credential failure, and reconnect.
- No screen parses raw protocol or performs network/persistence mutation directly.
- Secrets use approved platform storage or an explicitly documented safer fallback; never plaintext general settings.
- M3 wrapper scenario creates/selects a character, disconnects during play, reconnects, and exits cleanly.
- Error text is structured/localizable and does not leak server internals.
Dependencies and parallelization
Depends on #3/#12, server account/session issues, shared UI rendering, and settings boundaries. Can build against scripted session events before live transport.
Licensing
Client code/tests are MIT. Legacy reuse requires an audited approved-grantor grant; all other implementation is independent. Content, sound, and graphics retain their exact asset licenses and notices.
Outcome
Deliver the complete user-facing connection lifecycle against the Go server through pure session/actions and generated contracts.
Scope and invariants
Acceptance criteria
Dependencies and parallelization
Depends on #3/#12, server account/session issues, shared UI rendering, and settings boundaries. Can build against scripted session events before live transport.
Licensing
Client code/tests are MIT. Legacy reuse requires an audited approved-grantor grant; all other implementation is independent. Content, sound, and graphics retain their exact asset licenses and notices.