# Go Client The Go client module contains the generated MXAccess Gateway protobuf bindings, a small handwritten `mxgateway` package, and the `mxgw-go` test CLI scaffold. The module uses the shared proto inputs documented in `../../docs/client-proto-generation.md` so gateway and client contracts stay in sync. ## Layout ```text clients/go/ go.mod generate-proto.ps1 internal/generated/ mxgateway/ cmd/mxgw-go/ ``` `internal/generated` contains code produced by `protoc`, `protoc-gen-go`, and `protoc-gen-go-grpc`. Do not edit generated files by hand. ## Regenerating Protobuf Bindings Run generation after the shared `.proto` files or the Go output path changes: ```powershell ./generate-proto.ps1 ``` The script uses the tool paths recorded in `../../docs/toolchain-links.md`. ## Build And Test Run the Go module checks from `clients/go`: ```powershell go test ./... go build ./... ``` The scaffold tests parse the shared golden JSON fixtures with the generated Go types. Later client implementation tests add fake gRPC services, auth metadata, streaming, value conversion, and CLI behavior. ## CLI The scaffold CLI exposes version information: ```powershell go run ./cmd/mxgw-go version -json ``` Additional commands are implemented with the client/session wrapper work.