Decision records · Types the tables leave open
D-026 What type does each § 5.6 field, key, and member take where the specification gives no format?
What the schemas do
Each takes the schema type or value list its meaning names. cost_method and the availability's terms take open vocabularies. A budget is an amount of money, and a count is a whole number, neither negative.
Options
Why
The domain model types the § 5.6 rows a concept names: the rates and the committed amount are money, Amount (D-036), the flight's start and end points in time, Timestamp (D-001), the commitment's version the proposal's revision number, a Count, and hold_available a flag. cost_method is an Enum with no value list, only "CPM, CPC, flat, etc."; those three are the core terms of the open vocabulary CostMethod, spelled as the specification spells them, and § 5.6.3 uses flat. In availability, unit and basis are terms the specification doesn't list, each the open vocabulary of its own concept (D-041); granularity is the length of time each figure covers, a Duration (D-040); as_of is a Timestamp and quantity a Count. The bounds of commitment_bounds are counts of impressions and amounts of money. A min_commitment[] threshold has a line item ID, a Uuid (D-037), the commitment's basis vocabulary, an Amount, and a CurrencyCode.
What we ask the specification to state
Give cost_method its value list, and list the values of availability's unit and basis.
The specification lines it rests on
Each line is quoted as the record pins it. Expand an item to read the quote.
main
§ 5.6, the
pricing[].cost_methodrow L268 at 44dfaafpricing[].cost_method| Enum | seller-set | CPM, CPC, flat, etc.§ 5.6, the
availabilityrow's description: the inline object L275 at 44dfaaf{ unit, basis, as_of, granularity, type: forecast | reservable, quantity }
§ 5.6, the
commitment_boundsrow's description: the inline object L276 at 44dfaaf{ min_impressions, max_impressions, min_budget, max_budget }
With the open PRs
§ 5.6, the
pricing[].cost_methodrow L261 on main at 981a74epricing[].cost_method| Enum | seller-set | CPM, CPC, flat, etc.§ 5.6, the
availabilityrow's description: the inline object L268 on main at 981a74e{ unit, basis, as_of, granularity, type: forecast | reservable, quantity }
§ 5.6, the
commitment_boundsrow's description: the inline object L269 on main at 981a74e{ min_impressions, max_impressions, min_budget, max_budget }
§ 5.6.3, the
requires.min_commitment[]key row's meaning: the inline object L328 in #70{ line_item_id, basis, amount, currency }
What it shapes
main: Availability, CommitmentBounds, CostMethod, Availability.as_of, Availability.basis, Availability.granularity, Availability.quantity, Availability.type, Availability.unit, CommitmentBounds.max_budget, CommitmentBounds.max_impressions, CommitmentBounds.min_budget, CommitmentBounds.min_impressions, LineItemSummaryPricingEntry.cost_method, PricingEntry.cost_method
With the open PRs: Availability, CommitmentBounds, CostMethod, MinCommitmentEntry, Availability.as_of, Availability.basis, Availability.granularity, Availability.quantity, Availability.type, Availability.unit, CommitmentBounds.max_budget, CommitmentBounds.max_impressions, CommitmentBounds.min_budget, CommitmentBounds.min_impressions, LineItemSummaryPricingEntry.cost_method, MinCommitmentEntry.amount, MinCommitmentEntry.basis, MinCommitmentEntry.currency, MinCommitmentEntry.line_item_id, PricingEntry.cost_method