Skip to content

RFC 0004: side + arc for around_player (v1.3.0) - #41

Merged
OliEder merged 7 commits into
mainfrom
feat/around-player-arc
Aug 28, 2026
Merged

OliEder merged 7 commits into
mainfrom
feat/around-player-arc

Conversation

@OliEder

@OliEder OliEder commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Implements the accepted RFC 0004 — makes an around_player detour's side and tightness explicit instead of renderer-guessed.

What

Two optional, sport-neutral, string-enum fields added to move_step (shared by move/cut/dribble) and mirrored on action_cut as per-action defaults:

  • side — left / right (relative to the player's direction of travel)
  • arc — tight / normal / wide (how closely the path wraps the obstacle)

Both optional; when absent the renderer keeps its current defaults, so existing documents are unchanged. arc is a semantic enum (not a radius) — the renderer owns the enum→distance mapping. Purely additive → minor, v1.3.0.

Changes

  • Schema: side/arc on move_step and action_cut; additionalProperties: false preserved on both; no field removed or made required.
  • Fixtures: valid examples/around-player-arc.ocf.json (action-level defaults overridden per move_step); invalid arc-bad-value.json / side-bad-value.json (enum enforcement, verified to reject on the arc/side enum path).
  • Existing examples: pick-and-roll and transition-3v2 now demonstrate the fields on their dribble around_player step.
  • Docs: specification-v1.adoc documents side/arc (incl. the variant→arc default recommendation) + changelog; version bumped to 1.3.0 across package.json, package-lock.json, schema $comment, adoc :version:, and the README badge.

Verification

  • npm test — all suites pass (5 + 3).
  • All 8 valid examples validate; all 17 invalid fixtures correctly reject.
  • Asciidoctor build parses the new prose + changelog.
  • Sport-neutral: no per-sport gating added (RFC 0003 already gates the actions that use these fields).
  • Spec-conformance review + code-quality review both clean.

Renderer work (honor side, map arc→radius replacing the hardcoded 0.6, derive defaults from cut.variant) is tracked separately in the renderer task list.

🤖 Generated with Claude Code

@OliEder
OliEder merged commit 01d56f1 into main Aug 28, 2026
2 checks passed
@OliEder
OliEder deleted the feat/around-player-arc branch August 28, 2026 01:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant