Repository navigation
§ 2, § 4.1.4, § 5.6.3 — Packages: line items sold only together, in place of requires and linked_execution - #154
Open
KonstantinMirin wants to merge 385 commits into
Open
KonstantinMirin wants to merge 385 commits into
KonstantinMirin wants to merge 385 commits into
Conversation
This was referenced Nov 5, 2026
…ntract No IAB Tech Lab document defines the AAMP wire and lifecycle contract yet. The pre-release iab-agentic-primitives library's OpenAPI file and JSON Schemas define the messages the reference agents exchange, so an implementer can use them as the binding until the contract is published. Refs IABTechLab#59
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.
What this changes
The draft links line items in two ways, and neither keeps a line item about itself.
linked_executionhas one value,all, so it works as a Boolean for the whole proposal.requireslets a line item name others, so their state reaches it:agreed, cancelling a named line item invokes the dependent line item'scancellation_policy.This PR puts what spans line items one level up, on a package that holds them.
line_items[]orpackages[], not both.Packageholdsline_items[], sold only together, andadd_ons[], sold only with all of them once itsmin_commitments[]are met. A line item sold alone is a package of one, and a proposal sold only whole is one package.committhat names part of a package, or an add-on without its package, returnsnot_committable.hold_limits.ProposalSummarylists packages in place ofhas_requires.requiresandlinked_executionare removed.Related issue
Refs #23 and #6 (OQ-5). Refs #50, #86, #103, and #106.
Builds on
This PR builds on our formats PR, the last of our stack, so applying all 17 in order gives the final text. It replaces the
requiresandlinked_executionof #70 by @Sirajmx, which our PRs carry; our comment on #70 says why. Review the commits "Replace requires and linked_execution with packages", "Count a package's holds once against hold limits", and "Cancel an agreed package's line items only together".Type
Checklist
docs/open-questions.mdlinked_executionandrequiresgo, andpackages[]comes.scripts/check_appendix.pypasses: 96 field names, 98 rowsseller-set46 → 45; 99 → 98 fields; 27 touched by the buyerexamples/is updated and still parses.examples/proposal-package.yamlholds the CTV and audio line items ofproposal.yamlas a package, with the CTV bonus as its add-on, and the bonus leavesproposal.yaml.manifest.jsonis regenerated, and neitherrecord_digestchanges.scripts/check_examples.pychecks one shape per proposal, unique ids, thePackagekeys, thresholds on the package's own line items, and that a line item in both proposals is the same. All three checks passselectabledeclaresavailable[]andincluded[]; anythingsettabledeclares bounds (§ 3.1, § 3.2) — no newselectableorsettablefieldsKnock-on effects
requiresorlinked_executionno longer conforms.requires, such as dropping the cycle ban.any_ofhas no counterpart: no filing gave a case for it, and an add-on in each of two packages covers a bonus either one unlocks.Open questions
cancellation_policy, since a package holds no terms (question 2). § 8 question 5 asks only whether a package covers every bundle sellers sell.By opening this pull request I agree my contribution may be published under this
repository's licence, as set out in CONTRIBUTING.md.
Analyzed and generated with the help of Claude, fully reviewed by me.