# ALT Contracts This package owns ALT application-level protobuf contracts. `proto-socket` remains the transport protocol. ALT messages should be defined here and carried inside proto-socket `PacketBase.data`. Initial contract direction: - additive protobuf changes first - explicit handshake/version messages because proto-socket protocol `0.1` does not carry an application version field - market-neutral models with Korea market daily bars as the MVP path (including `ListBarsRequest`/`ListBarsResponse` and `GetBacktestResultRequest`/`GetBacktestResultResponse` for the MVP schema) - generated clients should be derived from `proto/` sources, not edited by hand ## Compatibility - Prefer additive fields and messages. - Never renumber existing fields. - Reserve removals or semantic rewrites for an explicit version bump. ## Transport Boundary - `proto-socket` owns `PacketBase`, heartbeat, nonce, and transport framing. - ALT `alt.v1` messages are application payloads carried in `PacketBase.data`. ## Codegen Generated outputs are committed source-of-derivation artifacts: - Go: `packages/contracts/gen/go/alt/v1/*.pb.go` (Go module `git.toki-labs.com/toki/alt/packages/contracts/gen/go`). - Dart: `apps/client/lib/src/generated/alt/v1/*.pb*.dart`. Commands (run from repository root): - `bin/contracts-gen` regenerates Go and Dart outputs from `proto/`. Requires `protoc`, `protoc-gen-go`, and a working `apps/client` Flutter package (the Dart plugin is invoked via `apps/client/tool/protoc-gen-dart`). - `bin/contracts-check` snapshots current generated outputs, regenerates, and fails when the regeneration produces a diff. Used by `bin/test` to keep schema and generated code aligned. Do not hand-edit files under `packages/contracts/gen/` or `apps/client/lib/src/generated/`.