Skip to content

Bootstrap Protobuf and Buf contracts with generated Go and Rust packages #1

Description

@zoeyrose

Outcome

Establish fresh atrinik/protocol as the MIT source of truth for Atrinik Game Protocol 1, with a new Protobuf schema family, Buf policy, specifications, fixtures, and reproducible generated Go/Rust contracts.

This repository does not import or extend the classic numeric C/Python registry in atrinik/classic/protocol.

Repository shape

  • Versioned packages such as atrinik.game.v1; package ownership follows bounded domain contracts rather than one monolithic message file.
  • Buf module/configuration for lint, formatting, dependency pinning, breaking-change baseline, and deterministic descriptor output.
  • Pinned generators for Go and Rust/prost with reproducible commands and generated-drift CI.
  • Human-readable specifications for semantics Protobuf cannot express: limits, ordering, authorization, state machines, framing, error behavior, and compatibility.
  • Golden descriptors/messages plus independently authored negative fixtures.

Quality and release gates

  • Aggregate required check: Protocol validation.
  • Schema lint, breaking check, generator drift, Go/Rust builds/tests, cross-language golden/negative tests, fuzz-target compilation, dependency/license audit, and docs link validation.
  • Release schema source, descriptor set, generated packages/artifacts, fixtures, checksums, SBOM/provenance/notices, and compatibility manifest.
  • Generated code license headers and provenance are explicit.

Acceptance criteria

  • Clean Go and Rust consumer examples build from a released/pinned protocol artifact without sibling repositories.
  • No C/Python binding, classic ID registry, MAP2/ADS-2 compatibility path, or GPL dependency exists.
  • Generation is deterministic and pinned; CI catches tool/schema/output drift.
  • Breaking policy has a baseline and documented exception/major-version process before M2 consumers stabilize.
  • Protobuf bytes are never treated as a canonical content/state hash without a separately specified canonicalization.

Licensing

Schemas/specs/generators are MIT. Verified original past material may enter only through the merged approved MIT provenance-grantor registry and complete-history evidence policy in atrinik/atrinik#275.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions