Specifies resource structure, APIs, storage, tooling, test matrix, and release checks for pluralization. This reference fixes the adoption boundary, failure behavior, and observable evidence while leaving environment-specific limits configurable.
Package status: reference context ready for human review. The contract and test scenarios are complete, but no claim is made that an adopting implementation has passed them.
Decision
For Pluralization, adopt canonical locale-neutral data plus explicit presentation locale. Implement the behavior through one authoritative write path, typed interfaces, explicit state, and idempotent side-effect handling. This package is a reference contract: the adopting team must choose numeric limits, providers, jurisdictions, and operational owners from evidence in its own environment.
Scope
- The Pluralization actors, inputs, outputs, states, policy or schema versions, and externally visible outcomes described by this implementation block.
- Primary and alternate interfaces, background work, caches, integrations, support paths, and evidence that can exercise the same boundary.
- Adoption-specific configuration, rollout, recovery, and verification responsibilities needed to apply the reference safely.
Outside this block
- Choosing a universal vendor, framework, jurisdiction, numeric threshold, retention period, or service-level objective for every adopter.
- Claiming that packaged scenarios have run against a downstream implementation or that this reference grants legal, security, or accessibility certification.
Contract
- Persist canonical values and stable translation keys; apply locale-specific formatting only at presentation or document-generation boundaries.
- Resolve requested, user, organization, and product fallback locales through one deterministic, observable chain.
- Use language tags and locale data from maintained standards; do not infer language, region, currency, or legal terms from one another.
- Test expansion, plural categories, bidirectional text, missing resources, time zones, currencies, and non-Latin input with representative fixtures.
- Validate inputs once at the boundary and preserve the normalized representation used by downstream logic.
- Persist the business transition before or atomically with an outbox record; consumers deduplicate by durable operation identity.
- Use locale-specific cardinal or ordinal plural categories from a pinned CLDR version and pass the raw numeric value to the message formatter.
- Test zero, one, two, fractions, large values, missing translations, and fallback locales without building sentences by concatenating separately translated fragments.
Implementation guidance
- Ship additive storage and interface changes first, backfill observably, then retire old paths after compatibility evidence.
- Model Pluralization inputs, outputs, actors, states, invariants, side effects, and evidence before selecting framework or vendor details.
- Store the applicable Pluralization contract or policy version with material state so migrations, replay, and support decisions remain attributable.
- Introduce the path behind controlled rollout, compare expected and observed outcomes, and keep a tested recovery route until adoption evidence is complete.
Failure handling and safeguards
- A missing or invalid resource follows the declared fallback chain, records the key and locale safely, and never exposes an internal identifier as final copy.
- Invalid or contradictory Pluralization state is rejected or quarantined; the implementation never guesses a value that broadens authority or duplicates an effect.
- Retries are bounded and use durable identity; after exhaustion, work reaches an inspectable terminal state with an accountable owner.
Verification and operations
- Inject dependency failure before and after persistence and prove that retry converges on one externally visible outcome.
- Monitor Pluralization success, denial, validation failure, dependency failure, retry exhaustion, and recovery by contract version without sensitive payload dimensions.
- Re-run paired positive and negative fixtures after policy, schema, dependency, migration, or boundary changes and preserve the resulting evidence.
Adoption assumptions
- Names and values in the example are a concrete fixture, not universal defaults; adopters replace them through documented evidence and ownership.
- The adopting system can provide authenticated identity, durable operation or record versions, bounded telemetry, and a controlled path for change.
The executable-looking examples in this package are fixtures and acceptance contracts. Run the collection validator to check structure and metadata, then translate and execute the scenarios in the target repository before recording implementation evidence.