# Cross-language Test Checklist

## Runner Layout

- [ ] Server-language orchestrator lives under `go/crosstest/`.
- [ ] Client-language subprocess helper lives under `typescript/crosstest/`.
- [ ] No root-level package metadata is added only for crosstests.
- [ ] Subprocess paths resolve from the package root or runner source location.

## Required Output

- [ ] Client helper prints `INFO typeName ts=TestData`.
- [ ] Each scenario prints exactly one `PASS scenario=N detail=...` or `FAIL scenario=N error=...` line.
- [ ] Orchestrator fails on missing scenario, `FAIL`, or non-zero subprocess exit.

## Required Scenarios

- [ ] Scenario 1: client sends fire-and-forget `TestData`; server validates `index` and `message`.
- [ ] Scenario 2: server pushes `TestData(index=200, message=push from go server)` to the client.
- [ ] Scenario 3: client `sendRequest` receives doubled `index` and echoed `message`.
- [ ] Scenario 4: concurrent requests verify nonce and response routing.

## Review Notes

- [ ] Record exact commands used to run TypeScript checks and Go cross tests.
- [ ] Record fixed ports `29490` and `29492`.
- [ ] Record TLS/WSS coverage status. Non-browser TLS/WSS is required; Dart.web WSS is covered through the browser matrix with the test certificate SPKI Chrome wrapper.
