Conversation
Both are arithmetic on the parent's own numeric columns, and the overdraw check they install belongs to the child, which is local on that direction - so both sides of an n:m allocation can be guarded from the module that owns the link rows. `status` remains local-only, and a `balance` with no `capacity` is refused. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.
Reference implementation: eclipse-dirigible/dirigible#7416 (issue eclipse-dirigible/dirigible#7410).
versions/1.2.mdcurrently states thatcapacity/balance/statusremain local-only on a cross-model parent. Two of those three are arithmetic on the parent's own numeric columns - the capacity is read, the balance is written alongside the sum - and the overdraw check they install belongs to the child, which is local on that direction. Keeping them out means both sides of an n:m allocation can never be guarded: the module that owns the link rows guards the parent it owns and is forced into hand-written code for the other, which is how a payment of 100 gets applied 100 twice.The amended normative paragraph:
field,capacityandbalanceare all validated against the owner's model at generation time;balancewith nocapacityMUST be refused (the balance is defined ascapacity - sum, so alone it names a column nothing fills);statusremains local-only - it moves the parent through the owner's own status values.Site PR: IntentFile/intentfile.github.io#(see companion).