components/elements/ButtonList/schema.jsjavascript
/**
 * Content-block contract of the "buttonList" element (pattern:
 * StoryTitle/schema.js). Button ids reference sibling view ids - checked by
 * scripts/validate-content.mjs.
 */
export default {
  type: "buttonList",
  region: "content",
  required: ["buttons"],
  properties: {
    buttons: {
      type: "array",
      items: {
        type: "object",
        required: ["id", "label"],
        additionalProperties: false,
        properties: {
          id: { type: "string", minLength: 1 },
          label: { type: "string" },
        },
      },
    },
  },
};