Skip to content

Story wire: read a step's structured args - #86

Merged
dayfine merged 1 commit into
mainfrom
story/step-args
Nov 10, 2026
Merged

dayfine merged 1 commit into
mainfrom
story/step-args

Conversation

@dayfine

@dayfine dayfine commented Nov 10, 2026

Copy link
Copy Markdown
Owner

Arduino-Source steps are moving their action arguments out of the free-text variant ("mart CeruleanCity_Mart budget=1500 ...") into an args object next to a plain variant name (dayfine/Arduino-Source#312, design in docs/design/AutoStory.md section 10 there). This adds args to story-checkpoint.schema.json and to checkpoint_wire.read_step, accepting flags, whole numbers and words only, as the C++ codec does; per-action keys are checked in the game's C++, not here. Four shared wire cases cover it (one accepted, three rejected); an "empty args" case stays C++-only because the native harness dumps an empty object as null.

Tested: full unittest discovery on Python 3.8 and 3.12, json_schema --check-published, contract_format --check, and the native StoryDataTests executable from #312 against the updated wire-conformance.json. The FRLG plan fixtures are unchanged until the FRLG plans are converted.

🤖 Generated with Claude Code

https://claude.ai/code/session_013VUubhHeYSMGSSDXZkKZss

Arduino-Source steps now carry their action's arguments as an `args`
object (flags, whole numbers, words) next to a plain `variant` name,
instead of "mart CeruleanCity_Mart budget=1500" text. The schema and the
Python reader accept it with the same value types as the C++ codec, and
the shared wire cases cover it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013VUubhHeYSMGSSDXZkKZss
@dayfine
dayfine marked this pull request as ready for review November 10, 2026 05:26
@dayfine
dayfine merged commit 0fe6a7f into main Nov 10, 2026
8 checks passed
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