Skip to content

Converge client error surfaces to the ruled C5 per-operation leaf-error shape #6

Description

@coenttb

Problem. This package's live typed clients use a whole-client generic Failure parameter (@Sendable (Request) async throws(Failure) -> Page, traversal errors like Traversal.Error<Failure>). The ruled target shape for client families (principal, 2026-07-31; C5 step-0 ruling swift-foundations/swift-witnesses#3 comment 5143970225) is per-operation domain-specific leaf errors via Either<Async.Lifecycle.Error, Leaf> — whole-client Client<Failure> genericism was explicitly rejected. swift-standards/swift-stripe-standard realized the ruled shape at fd63cd0 (309 operations, run 30698829457) and is the exemplar.

Proposed outcome. This package's client surfaces converge to the C5 shape: per-operation leaf enums at noun namespaces, Either<Async.Lifecycle.Error, Leaf> throws, Never for infallible operations, with the traversal-composition design mapped onto leaf errors rather than a generic parameter (the exact traversal mapping is a design element for the external-API first-principles programme — record the chosen mapping here before mass execution). Sequenced within the ruled migration order (after mailgun's vehicle; before identities-types closes the arc).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions