Skip to content

Define actor, combat, timed-action, effect, and scene-semantic contracts #7

Description

@zoeyrose

Outcome

Carry bounded authorized living-state and action presentation facts without exposing server internals or making the client simulate authoritative combat.

Scope and normative requirements

  • Actor identity/generation, visible stats/resources/protections/effects, target state, movement samples, death/respawn, and disclosure levels.
  • Action wind-up/commit/cancel timing, captured source/target, semantic animation/effect/material/sound cues, progress, and result attribution.
  • Projectile/effect scene identity and authoritative tile/tick samples sufficient for client interpolation without changing committed positions.
  • Typed damage/healing/combat feedback, XP suitability, treasure-sense/light/weather semantics as authorized; avoid unbounded combat-log prose.
  • Revision/generation reset and reconnect rules for transient/persistent state.

Acceptance criteria

  • Fixtures cover overlapping/cancelled/completed actions, stale actor generation, reconnect, hidden fields, unknown effects, boundary stats/times, and reordered delivery.
  • Rust session can interpolate/present while Go remains authoritative; no physics/combat formula is duplicated.
  • Privacy/disclosure tests prove one viewer's message never contains another viewer's hidden classifications.
  • Every collection/string/effect list has exact bounds and update semantics.
  • Renderer receives renderer-neutral semantic state only after client validation.

Dependencies and parallelization

Coordinates with server timed actions/combat and renderer materials/interpolation. It can split into actor/action/effect schemas after common state machine approval.

Licensing and scope boundary

Protocol schemas, specifications, fixtures, and generators are MIT. Verified original past work by an approved MIT provenance grantor may be migrated under the recorded provenance grant. Compiled content artifacts are specified by content-toolkit; this repository owns network contracts only.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Fields

    Priority

    None yet

    Effort

    None yet

    Projects

    Status
    Backlog

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions