proclubs-sdk/nationalities, proclubs-sdk/regions,
and proclubs-sdk/metadata) for standalone label tables.
Input types
Response types
PlayoffAchievementDerivedLabels contains the typed resolved labels used when
EA already supplies a field with one of the derived label names.
ClubInfoDerivedLabels contains the resolved regionLabel when EA already
supplies a raw region label. ClubMemberDerivedLabels contains the resolved
nationality when EA already supplies a raw member nationality.
Runtime fidelity and normalizations
- Runtime fidelity: All object schemas use loose object validation, meaning any additional fields sent by EA are preserved and accessible on returned objects.
- Envelope unwrapping:
clubs.getandclubs.overallStatsunwrap the upstream envelope to return the requested resource directly (ClubInfo | nullandClubOverallStats | null). Nested field values stay in their upstream representation. - Region labels: When public club information contains a
regionId, the SDK copies the object and may add a derivedregionLabel. If EA already suppliesregionLabel, that raw value is preserved and the calculated value is exposed underderivedLabels.regionLabel. The rawregionIdis never rewritten. This applies toclubs.get, nestedclubInfoon club searches and ranking entries, and match clubdetails. See Regions. - Nationalities: When a member contains a known
proNationality,members.statsandmembers.careerStatscopy the member and add a derivednationality. If EA already suppliesnationality, that raw value is preserved and the calculated value is exposed underderivedLabels.nationality. The rawproNationalityis never rewritten. See Nationalities. - The other nine endpoints (
clubs.search,clubs.playoffAchievements, the four ranking methods,members.stats,members.careerStats, andmatches.list) return their full response data directly, aside from region-label, nationality, and playoff-label enrichment. - Full leaderboards preserve EA response order and have no server pagination. Numeric strings remain strings.
Constants
REGION_LABELS, KnownRegionId, RegionLabel, and resolveRegionLabel are
documented on Regions. NATIONALITY_LABELS,
KnownNationalityId, NationalityLabel, NationalityIsoCode, Nationality,
and resolveNationality are documented on
Nationalities. Platform, match-type,
position, reputation, division, playoff, and crest helpers are documented on
Metadata labels.
Response schemas
The public Zod schemas let consumers validate stored or forwarded EA payloads against the same envelopes as the SDK.Drift detection and compatibility
field_added, field_removed, type_changed, envelope_changed, and unknown_value.
regionLabel and
nationality are derived SDK fields and would otherwise appear as field_added.
An endpoint with only unknown_value diagnostics remains passed: the raw EA
value is usable, while the diagnostic tells maintainers that a label mapping
may need to be extended. Structural changes, rejected payloads, and invalid
envelopes are drifted. Empty arrays are unverified because their shape
cannot be confirmed from an empty response.
An unknown regionId does not fail club requests. The same ID can appear in a
compatibility report as unknown_value so maintainers can extend
REGION_LABELS after confirming the EA label. An unknown proNationality is
reported the same way for NATIONALITY_LABELS. That signal is additive (minor)
and is separate from the mapping used at runtime. See Regions,
Nationalities, and issue #17.
Interpreting compatibility reports
Each report ends with a summary status and a release recommendation:
Drift detection never mutates schemas, fixtures, or types automatically.
Update the contract manually after confirming each reported change against
live data.