/* [RFC-0103] Canonical StandardCard schema consumed by . Unifies the four ad-hoc card shapes that used to live in `approach`, `audience-cards`, `donation-use`, `team` (PersonProfile keeps a richer shape because it owns animation hooks). Do not introduce app-specific runtime composition or deployment behavior into this reusable package source file. RFC-0133: backfilled MODULE_MAP and CHANGE_SUMMARY markers for compass.validate compliance. */ import { z } from "zod"; import { vendorIconConfigSchema } from "./standard-list-item.ts"; export const standardCardSchema = z .object({ title: z.string(), description: z.string().optional(), /** Bare image name (RFC-0053); resolved by at render. */ image: z.string().optional(), imageAlt: z.string().optional(), icon: vendorIconConfigSchema.optional(), /** Optional internal pageId or anchor target — turns the card into a link. */ href: z.string().optional(), badge: z.string().optional(), /** Optional number display for the card (e.g., "01", "02") */ number: z.string().optional(), }) .strict(); export type StandardCard = z.infer;