D-021 Does a Deals API object accept members its table doesn't name, and what is ext?
What the schemas do
Each object accepts only the members its table names, and ext, on every object, takes an object of any members, which the parties agree on.
Options
Why
Every table lists its object's members and gives each object an ext "for deal-specific extensions", so the text names where a member it doesn't define goes. The text never says what a receiver does with a member outside the table, and no row forbids one, so whether an object is open or closed is a point it leaves open. That differs from a minimum the rows would rule out: an object with none of its optional members is one each row allows, so the schema keeps it valid. A member outside the table is one no row describes, and the text gives such members a place, ext, so closing the object sends them there. A closed object also lets the schema find a misspelled member, which an open one accepts as an extension.
What we ask the specification to state
Say whether a receiver must reject, or must ignore, a member that no table names, and whether a sender may put one anywhere but ext.
The specification lines it rests on
Each line is quoted as the record pins it. Expand an item to read the quote.
main
Object: Deal, the
extrow L101 at 3028ddcext| object | Placeholder for deal-specific extensionsObject: Terms, the
extrow L117 at 3028ddcext| object | Placeholder for deal-specific extensionsObject: Inventory, the
extrow L133 at 3028ddcext| object | Placeholder for deal-specific extensionsObject: Curation, the
extrow L146 at 3028ddcext| object | Placeholder for deal-specific extensionsObject: BuyerSeat, the
extrow L164 at 3028ddcext| object | Placeholder for deal-specific extensionsObject: BuyerStatus, the
extrow L175 at 3028ddcext| object | Placeholder for deal-specific extensions
Tag 1.0-202602
Object: Deal, the
extrow L101 at 938a5d1ext| object | Placeholder for deal-specific extensionsObject: Terms, the
extrow L117 at 938a5d1ext| object | Placeholder for deal-specific extensionsObject: Inventory, the
extrow L133 at 938a5d1ext| object | Placeholder for deal-specific extensionsObject: Curation, the
extrow L146 at 938a5d1ext| object | Placeholder for deal-specific extensionsObject: BuyerSeat, the
extrow L164 at 938a5d1ext| object | Placeholder for deal-specific extensionsObject: BuyerStatus, the
extrow L175 at 938a5d1ext| object | Placeholder for deal-specific extensions
What it shapes
main: BuyerSeat.ext, BuyerStatus.ext, Curation.ext, Deal.ext, Inventory.ext, Terms.ext
Tag 1.0-202602: BuyerSeat.ext, BuyerStatus.ext, Curation.ext, Deal.ext, Inventory.ext, Terms.ext