**Session Date/Time:** 14 May 2025 14:00 # [CBOR](../wg/cbor.html) ## Summary The meeting primarily focused on the `cbor-packed` document, discussing the optimal values for tunables A, B, and C based on new experimental data. A proposal was made to register CBOR simple values for general packing and templating use, rather than exclusively for `cbor-packed`, leading to a sense of the room supporting an `A=16` value for shared simple values. Work on this separate registration document was deferred. The meeting concluded with the cancellation of the next scheduled interim and a call for the working group to review an alternative draft for `cbor-preferred-serialization` (CDE) to foster broader consensus. ## Key Discussion Points * **`cbor-packed` Tunables (A, B, C):** * Vadim presented an update to `sopac-15` reflecting tunables A (1+0 simple values for shared item references), B (1+1 tags for straight argument references), and C (1+1 tags for inverted argument references). * New data suggests B and C should likely be equal, moving towards two primary numbers to determine (A and B/C). * The argument against setting A=B=C=0 was reiterated; `cbor-packed` aims for reasonable conciseness without excessive complexity, unlike some "binary JSON" formats. * **Experimental Data for Tunables:** * **Zip Distribution:** Indicated that B=8 provides a good balance between conciseness and complexity, costing about half a byte more per reference than the original B=32. * **SBOM File Analysis:** A large SBOM file with structural redundancy showed that the first 8 argument table elements were used appreciably more often, supporting B=8 for such structured data. * **IoT DNS Messages (for Tunable A):** An analysis of DNS responses from an IoT testbed suggested that while many messages are simple, a value of `A=12` (out of 20 available 1+0 simple values, after reserving for indefinite length encoding and `false/true/null/undefined`) appears reasonable based on current data, offering benefits to over 95% of messages in the corpus. The original `cbor-packed` design considered A=16. * Comparison to Zstandard confirmed that `cbor-packed` serves a different purpose than general-purpose compression. * More corpus data from the community was requested to refine these numbers further. * **Proposal for Shared Simple Value Registration:** * Vadim proposed that CBOR simple values (e.g., all 16 available 1+0 values) should be registered in IANA for *general* packing and templating purposes, rather than being exclusively assigned to `cbor-packed`. This would allow other specifications (e.g., `cbor-seat`) to use these values without being dependent on `cbor-packed`. * Carsten noted that `cbor-packed` is designed with an extension point, allowing new table setup mechanisms to define their own meaning for these simple values and argument reference tags within their own context (e.g., via a specific tag). Editorial clarification in the `cbor-packed` document might be beneficial. * The discussion revolved around whether explicit separate registration or clearer wording in `cbor-packed` was the appropriate mechanism for this flexibility. * **DNS Draft Review:** * Vadim briefly mentioned issues with examples in the current DNS `cbor-packed` draft, specifically regarding tag combinations and optimized compression, suggesting further explanation or fixing is needed. * **`cbor-preferred-serialization` (CDE) Alternative Draft:** * Lawrence presented his work on an alternative draft for `cbor-preferred-serialization`, aiming for a different structural approach that is shorter, clearer, and introduces fewer new ideas than the current CDE draft. * He intends to publish this draft and called for the working group to review it, focusing on its overall structure and orientation, to foster stronger positive consensus on this important document. ## Decisions and Action Items * A sense of those present indicates no objection to setting tunable `A=16` in `cbor-packed` *if* the range of simple values can be shared for general packing/templating by other mechanisms. * Work on Vadim's proposal for a separate document registering generic simple values (and `cbor-seat` more broadly) is deferred until the three core `cbor-packed` related documents are finished. * The interim meeting scheduled for May 28th is canceled due to chair unavailability. ## Next Steps * Continue discussion on the mailing list regarding the final values for `cbor-packed` tunables (A, B, C) and how to best address the shared use of simple values (e.g., via editorial clarifications in `cbor-packed` or a separate registration document). * Working group members are requested to review Lawrence's alternative draft for `cbor-preferred-serialization` (CDE) once published. * Engage in broader discussion on the mailing list regarding the direction and consensus for the `cbor-preferred-serialization` topic. * The next interim meeting is scheduled for June 11th.