Strict declared fields and tolerant extensions for consumer projections

A partial consumer model should validate its declared fields strictly while ignoring undeclared producer fields. This applies when the consumer intentionally needs only a stable projection of a larger, evolving payload; it does not apply when the model is meant to certify or preserve the producer's complete schema. Keep strict typing, invariants, and immutability for modeled fields, and add compatibility tests using representative producer payloads so ignored extensions cannot mask errors in required data.

Evidence/example — 2026-09-11: In e3-solutions/ender-inference COR-4187, a Pydantic hierarchy used extra="forbid" even though downstream evaluation only required a subset of the negotiation service's universal-context payload. A real schema-v4 call was rejected solely because valid but unneeded producer fields were present; changing the shared base model to extra="ignore", while retaining strict=True and correcting the declared runner_generation type to string, allowed projection-style deserialization. Representative v4 compatibility tests, 78 local focused/adjacent tests, and GitHub PR #199 verification passed. Provenance: repository models/tests, authoritative producer payload inspected through the call store, and GitHub Actions.