modules: allied transfer - #8521
Draft
keithharvey wants to merge 1 commit into
Draft
Conversation
Contributor
Integration Test Results20 tests +3 8 ✅ ±0 16s ⏱️ ±0s For more details on these failures, see this check. Results for commit ac06956. ± Comparison against base commit 9568398. ♻️ This comment has been updated with latest results. |
Units, resources and an empty team's assets all move by the same question — may this pass, at what cost, and who is told. One pipeline answers it, so there is a single place where a transfer is validated, priced and announced rather than one per thing being moved. Sharing was never a domain. It was a feature name over this pipeline plus four construction gadgets and a tech feature, which is why every boundary drawn around it failed: allied is a modifier on other domains' policies, not a domain of its own. What is left once those leave is one system, and transfer is what it does. The tax rate comes with it. What a transfer costs is a property of the transfer; it reads the tier tech owns, and that edge runs one way. Shared spec builders gain the fixtures these specs need. They are only used here, so they travel with the module that needs them.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Units, resources and an empty team's assets all move by the same question — may this pass, at what cost, who is told — so one pipeline answers it.
Sharing was never a domain: it was a feature name over this pipeline plus four construction gadgets and a tech feature. Allied is a modifier on other domains' policies, not a domain of its own.
(reopened from #8491: construction now sits below transfer, and GitHub cannot retarget a base inside a stack.)
Update (2026-08-07): the category speaks the module's language. The lobby section and selector are renamed Sharing → Transfer (
transfer/transfer_mode) — safe because neither key had shipped anywhere. Per-option wire keys (unit_sharing_mode, tax rates, …) are unchanged; they describe sharing behavior, not the category. The mode DSL is also now typed end-to-end for the language server (TransferModeDSL/TransferModeChain+ aTransferGrantnoun class), so preset chains resolve statically.