from pydantic import BaseModel, ConfigDict


class SRDModel(BaseModel):
    """Base for all models mirroring upstream zod schemas.

    extra="forbid" mirrors z.strictObject; strict=True additionally rejects
    type coercion (a string where a number belongs is upstream drift, and the
    build must fail loudly on it).
    """

    model_config = ConfigDict(extra="forbid", strict=True)
