Skip to content

Contract #561 — campaign composition: includes, attachments, copy - #563

Merged
The-Running-Dev merged 1 commit into
mainfrom
contract-561-campaign-composition
Oct 7, 2026
Merged

The-Running-Dev merged 1 commit into
mainfrom
contract-561-campaign-composition

Conversation

@The-Running-Dev

Copy link
Copy Markdown
Owner

Contracts campaign composition for #561, following the composition-at-load decision recorded for #293/#292 in #562. This PR changes documents only; W120 builds it.

Core (04):

  • §10.4. Adds CampaignInclude/CampaignAttachment and their siblings, with the split between what the core checks and what the kind checks.
  • Fixed order. Composition runs depth-first, in a fixed order.
  • Version pins. Pins check the authored version, not the stamped one.
  • §3. Adds Kind.composeContent.
  • §12. Adds seven core codes.
  • C17 and §17. : is allowed in composed ids only.

Story-graph (03):

  • §1.1. Adds the module block, the include binding and the attachment payload. A module's exits are its endings, and the entry is an auto node whose id is the alias.
  • §5. Adds a new copy consequence.
  • §8.3. Adds six codes.

Packs (11):

  • §2 and §3a. Adds ContentPack.attachments and ResolvedRegistry.authoredVersions.
  • §6. The digest changes only when includes or attachments are non-empty.

Decisions: a 90-decisions.md entry records all nine answers, the drafting calls and the rejected options. It names the four answers where the owner chose against the recommended option.

Open, not decided here:

  • The portable format does not carry includes.
  • SubZeroDev.Adventures may check id shapes, and the : amendment widens them.

Verified:

  • ./build/Test-Documentation.ps1 passed: 131 files, and the drift check across 18 generated pages and the guide.
  • git diff --check is clean.
  • Not run: the engine typecheck/lint/test (this PR changes no code), and ./docs.ps1 -BuildOnly. The Verify Documentation Build check covers the Docusaurus build.

Contracts the composition-at-load decision (#293/#292): Campaign.includes and
pack attachments as core envelope, Kind.composeContent as the kind-owned merge,
story-graph modules with alias::id composed ids (C17 amended), a copy
consequence for bindings, thirteen reason codes. Slice W120 builds it.
@The-Running-Dev
The-Running-Dev merged commit 84bbc42 into main Oct 7, 2026
8 checks passed
@The-Running-Dev
The-Running-Dev deleted the contract-561-campaign-composition branch October 7, 2026 18:30
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