Skip to content

Define common identities, coordinates, revisions, clocks, and bounded scalar types #3

Description

@zoeyrose

Outcome

Create the small stable value vocabulary shared across every Game Protocol 1 domain without serializing internal pointers, enum positions, localized text, or ambiguous coordinate/time units.

Types to specify

  • Stable account/character/entity/session/map-instance/content/resource/action/request/transaction IDs and which are persistent, opaque, scoped, or generational.
  • Tile/map/physical-level/surface coordinates, directions, offsets, viewport/profile dimensions, and numeric ranges.
  • Catalog/content/resource digests and version/revision/generation semantics.
  • Simulation ticks, action timestamps/durations, wall/calendar timestamps where truly required, and clock-origin/unit rules.
  • Bounded text/bytes/list/map/page/cursor types, localized text keys versus authored text, semantic color/material/role tokens, and structured diagnostic IDs.
  • Money/quantity/stat/formula scalar representations, overflow/rounding, optional/presence semantics, and unknown enum behavior.

Rules

  • Define protobuf field presence/default behavior explicitly.
  • Reserve removed field numbers/names and never reuse stable enum values.
  • Every collection/string/bytes field has Atrinik-specific semantic bounds beyond generated parser limits.
  • IDs are never inferred from display names or filesystem paths.
  • Validation helpers may be generated, but server/client still enforce state/authorization context.

Acceptance criteria

  • Go/Rust conformance fixtures cover minima/maxima, absent/default, unknown enum/field, invalid UTF-8 where applicable, overflow, stale generations/revisions, and coordinate transformations.
  • Domain schemas import one common type rather than duplicate near-equivalents.
  • Stable IDs survive save/reconnect/catalog reload according to their documented scope.
  • Internal database/runtime/GPU handles cannot cross the wire.
  • The type set remains narrow; domain-specific semantics stay in domain schemas.

Activity

  1. github-actions commented on Aug 8, 2026

    @github-actions

    🎉 This issue has been resolved in version 1.0.0 🎉

    The release is available on:

    Your semantic-release bot 📦🚀

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