svc-tenders Builder Shape Map
Purpose
This note documents the support-builder return-shape assembly clarified in Cleanup Sprint 32 for the densest route/support cluster in svc-tenders.
Focus:
- which returned members are shell-provided
- which are shell-adjacent shared helpers
- which are local capability/gate helpers
- which are local evidence/parsing helpers
- which are ingress-specific or transitional
Labels used here:
VERIFIEDREALTRANSITIONAL
declarationRouteSupport.ts
Module:
Builder: buildTenderDeclarationRouteSupport(...)
Return-shape clusters:
- shell-provided
requireServiceAuthparseOptionalStringrunMulterSingle
- shell-adjacent shared request support
resolveIntentId
- local capability/gate-derived
getTenderDeclarationCapabilitieshasTenderDeclarationCapabilitycanCheckTenderDeclaration
- local evidence parsing
parseTenderDeclarationEvidenceGroupKey
Notes:
VERIFIED- the shape is mostly declaration-local, but still depends on shell-owned auth/upload/runtime helpers
Builder: buildAuctionDeclarationRouteSupport(...)
Return-shape clusters:
- shell-provided
requireServiceAuthparseOptionalStringrunMulterSingle
- shell-adjacent shared request support
resolveIntentId
- local capability/gate-derived
getAuctionDeclarationCapabilitieshasAuctionDeclarationCapabilitycanCheckAuctionDeclaration
- local evidence parsing
parseAuctionDeclarationEvidenceGroupKey
Notes:
VERIFIED- same builder-shape pattern as tender declaration support
- asymmetry with route consumption still exists because auction route flow remains composition-heavy downstream
kesRouteSupport.ts
Module:
Builder: buildKesRouteSupport(...)
Return-shape clusters:
- shell-provided auth/parser fields
requireServiceAuthparsePositiveIntparseOptionalIntparseOptionalStringparseOptionalUpperclampPositiveInt
- ingress/security-derived fields
ensureThirdPartyKycBoundaryverifyIncomingSignatureGate
Notes:
VERIFIED- this builder has no declaration-style local helper fields
- it is the most shell-adjacent builder in the cluster
- stricter payment-sensitive usage still happens in the KES route module, not here
Current Asymmetry
VERIFIED
The support builders remain intentionally asymmetric:
- declaration support builders return a mixed shape of shell inputs plus declaration-local capability/evidence helpers
- KES support returns shell-provided parser/auth fields plus ingress/security helpers, but no local capability/evidence helper cluster
That asymmetry reflects the current code reality and should stay visible.