You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
All Swift event payloads, request results, protocol-only helper models, and checkout/error parameter wrappers now live under EmbeddedCheckoutProtocol. This prevents collisions with Kit’s public Checkout when CocoaPods compiles both source sets into one module. SwiftPM and CocoaPods use the same names, without top-level aliases for protocol payloads.
The generator derives payloads from the event catalog and includes their exclusive dependencies. Shared checkout and order domain types remain top-level, preserving Kit’s direct use of Buyer, LineItem, and CheckoutTotal. Model fields and wire-format strings are unchanged. Generated examples use the same namespace rules as the declarations.
Both API dump and check canonicalize declarations at module and nested-type levels, including members added by extensions. Stored-property and enum-case order, parameter types, and other metadata arrays retain their ordering. Committed baselines use that same representation. Regression tests cover stable dumps and detection of meaningful API changes.
Model round-trip tests use the generated JSON helpers consistently, with fixtures covering absent dates, checkout expiry, and nested delivery dates. The checkout event APIs and production event-decoding fix remain in the Swift PR above this prerequisite.
Measured from the PR base SHA and PR head SHA. The file breakdown shows uncompressed sizes within each package artifact, so individual files do not sum to the compressed artifact total. This comment reports package artifact sizes only; it is not a final app binary-size report.
markmur
changed the title
Namespace Swift protocol checkout model
Namespace Swift protocol payloads
Sep 14, 2026
The reason will be displayed to describe this comment to others. Learn more.
Nit: This mentions Kit’s public Checkout, but this PR does not add that type. The Swift events PR above this one adds it. Move this sentence there, or rewrite this section to only describe EmbeddedCheckoutProtocol.Checkout.
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
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.
All Swift event payloads, request results, protocol-only helper models, and checkout/error parameter wrappers now live under
EmbeddedCheckoutProtocol. This prevents collisions with Kit’s publicCheckoutwhen CocoaPods compiles both source sets into one module. SwiftPM and CocoaPods use the same names, without top-level aliases for protocol payloads.The generator derives payloads from the event catalog and includes their exclusive dependencies. Shared checkout and order domain types remain top-level, preserving Kit’s direct use of
Buyer,LineItem, andCheckoutTotal. Model fields and wire-format strings are unchanged. Generated examples use the same namespace rules as the declarations.Both API
dumpandcheckcanonicalize declarations at module and nested-type levels, including members added by extensions. Stored-property and enum-case order, parameter types, and other metadata arrays retain their ordering. Committed baselines use that same representation. Regression tests cover stable dumps and detection of meaningful API changes.Model round-trip tests use the generated JSON helpers consistently, with fixtures covering absent dates, checkout expiry, and nested delivery dates. The checkout event APIs and production event-decoding fix remain in the Swift PR above this prerequisite.
Stack