[{"data":1,"prerenderedAt":5504},["ShallowReactive",2],{"navigation_docs":3,"docs-navigation-with-icons":419,"-docs-api-validation":561,"-docs-api-validation-surround":5499},[4,66,87,124,405],{"title":5,"path":6,"stem":7,"children":8,"page":65},"Api","\u002Fdocs\u002Fapi","docs\u002Fapi",[9,13,17,21,25,29,33,37,41,45,49,53,57,61],{"title":10,"path":11,"stem":12},"Best Practices","\u002Fdocs\u002Fapi\u002Fbest-practices","docs\u002Fapi\u002Fbest-practices",{"title":14,"path":15,"stem":16},"Blog","\u002Fdocs\u002Fapi\u002Fblog","docs\u002Fapi\u002Fblog",{"title":18,"path":19,"stem":20},"Code Examples","\u002Fdocs\u002Fapi\u002Fcode-examples","docs\u002Fapi\u002Fcode-examples",{"title":22,"path":23,"stem":24},"Collections","\u002Fdocs\u002Fapi\u002Fcollections","docs\u002Fapi\u002Fcollections",{"title":26,"path":27,"stem":28},"Field Types","\u002Fdocs\u002Fapi\u002Ffield-types","docs\u002Fapi\u002Ffield-types",{"title":30,"path":31,"stem":32},"Rate Limits & Errors","\u002Fdocs\u002Fapi\u002Flimits-and-errors","docs\u002Fapi\u002Flimits-and-errors",{"title":34,"path":35,"stem":36},"Media","\u002Fdocs\u002Fapi\u002Fmedia","docs\u002Fapi\u002Fmedia",{"title":38,"path":39,"stem":40},"Overview","\u002Fdocs\u002Fapi\u002Foverview","docs\u002Fapi\u002Foverview",{"title":42,"path":43,"stem":44},"Pages","\u002Fdocs\u002Fapi\u002Fpages","docs\u002Fapi\u002Fpages",{"title":46,"path":47,"stem":48},"Query Parameters","\u002Fdocs\u002Fapi\u002Fquery-parameters","docs\u002Fapi\u002Fquery-parameters",{"title":50,"path":51,"stem":52},"Responses & Caching","\u002Fdocs\u002Fapi\u002Fresponses","docs\u002Fapi\u002Fresponses",{"title":54,"path":55,"stem":56},"Troubleshooting","\u002Fdocs\u002Fapi\u002Ftroubleshooting","docs\u002Fapi\u002Ftroubleshooting",{"title":58,"path":59,"stem":60},"Validation","\u002Fdocs\u002Fapi\u002Fvalidation","docs\u002Fapi\u002Fvalidation",{"title":62,"path":63,"stem":64},"Webhooks","\u002Fdocs\u002Fapi\u002Fwebhooks","docs\u002Fapi\u002Fwebhooks",false,{"title":67,"path":68,"stem":69,"children":70,"page":65},"Getting Started","\u002Fdocs\u002Fgetting-started","docs\u002Fgetting-started",[71,75,79,83],{"title":72,"path":73,"stem":74},"Authentication","\u002Fdocs\u002Fgetting-started\u002Fauthentication","docs\u002Fgetting-started\u002Fauthentication",{"title":76,"path":77,"stem":78},"Introduction","\u002Fdocs\u002Fgetting-started\u002Fintroduction","docs\u002Fgetting-started\u002Fintroduction",{"title":80,"path":81,"stem":82},"Quickstart","\u002Fdocs\u002Fgetting-started\u002Fquickstart","docs\u002Fgetting-started\u002Fquickstart",{"title":84,"path":85,"stem":86},"Write Operations","\u002Fdocs\u002Fgetting-started\u002Fwrite-operations","docs\u002Fgetting-started\u002Fwrite-operations",{"title":88,"path":89,"stem":90,"children":91,"page":65},"Guides","\u002Fdocs\u002Fguides","docs\u002Fguides",[92,96,100,104,108,112,116,120],{"title":93,"path":94,"stem":95},"Admin Interface","\u002Fdocs\u002Fguides\u002Fadmin-interface","docs\u002Fguides\u002Fadmin-interface",{"title":97,"path":98,"stem":99},"ButterCMS Migration","\u002Fdocs\u002Fguides\u002Fbuttercms-migration","docs\u002Fguides\u002Fbuttercms-migration",{"title":101,"path":102,"stem":103},"Migrations","\u002Fdocs\u002Fguides\u002Fmigrations","docs\u002Fguides\u002Fmigrations",{"title":105,"path":106,"stem":107},"Page Management","\u002Fdocs\u002Fguides\u002Fpage-management","docs\u002Fguides\u002Fpage-management",{"title":109,"path":110,"stem":111},"Public API Usage","\u002Fdocs\u002Fguides\u002Fpublic-api-usage","docs\u002Fguides\u002Fpublic-api-usage",{"title":113,"path":114,"stem":115},"Schema Builder","\u002Fdocs\u002Fguides\u002Fschema-builder","docs\u002Fguides\u002Fschema-builder",{"title":117,"path":118,"stem":119},"User Management","\u002Fdocs\u002Fguides\u002Fuser-management","docs\u002Fguides\u002Fuser-management",{"title":121,"path":122,"stem":123},"Rich Text Editor","\u002Fdocs\u002Fguides\u002Fwysiwyg-editor","docs\u002Fguides\u002Fwysiwyg-editor",{"title":125,"path":126,"stem":127,"children":128,"page":65},"Sdk","\u002Fdocs\u002Fsdk","docs\u002Fsdk",[129,132,136,140,144],{"title":38,"path":130,"stem":131},"\u002Fdocs\u002Fsdk\u002Freadme","docs\u002Fsdk\u002FREADME",{"title":133,"path":134,"stem":135},"Astro","\u002Fdocs\u002Fsdk\u002Fastro","docs\u002Fsdk\u002Fastro",{"title":137,"path":138,"stem":139},"Next.js","\u002Fdocs\u002Fsdk\u002Fnextjs","docs\u002Fsdk\u002Fnextjs",{"title":141,"path":142,"stem":143},"Nuxt","\u002Fdocs\u002Fsdk\u002Fnuxt","docs\u002Fsdk\u002Fnuxt",{"title":145,"path":146,"stem":147,"children":148,"page":65},"Reference","\u002Fdocs\u002Fsdk\u002Freference","docs\u002Fsdk\u002Freference",[149,153,222,235,380],{"title":150,"path":151,"stem":152},"@tentocms\u002Fclient","\u002Fdocs\u002Fsdk\u002Freference\u002Freadme","docs\u002Fsdk\u002Freference\u002FREADME",{"title":154,"path":155,"stem":156,"children":157,"page":65},"Classes","\u002Fdocs\u002Fsdk\u002Freference\u002Fclasses","docs\u002Fsdk\u002Freference\u002Fclasses",[158,162,166,170,174,178,182,186,190,194,198,202,206,210,214,218],{"title":159,"path":160,"stem":161},"Class: BlogCategoriesResource","\u002Fdocs\u002Fsdk\u002Freference\u002Fclasses\u002Fblogcategoriesresource","docs\u002Fsdk\u002Freference\u002Fclasses\u002FBlogCategoriesResource",{"title":163,"path":164,"stem":165},"Class: BlogPostsResource","\u002Fdocs\u002Fsdk\u002Freference\u002Fclasses\u002Fblogpostsresource","docs\u002Fsdk\u002Freference\u002Fclasses\u002FBlogPostsResource",{"title":167,"path":168,"stem":169},"Class: BlogResource","\u002Fdocs\u002Fsdk\u002Freference\u002Fclasses\u002Fblogresource","docs\u002Fsdk\u002Freference\u002Fclasses\u002FBlogResource",{"title":171,"path":172,"stem":173},"Class: BlogTagsResource","\u002Fdocs\u002Fsdk\u002Freference\u002Fclasses\u002Fblogtagsresource","docs\u002Fsdk\u002Freference\u002Fclasses\u002FBlogTagsResource",{"title":175,"path":176,"stem":177},"Class: CollectionsResource","\u002Fdocs\u002Fsdk\u002Freference\u002Fclasses\u002Fcollectionsresource","docs\u002Fsdk\u002Freference\u002Fclasses\u002FCollectionsResource",{"title":179,"path":180,"stem":181},"Class: CollectionsWriteResource","\u002Fdocs\u002Fsdk\u002Freference\u002Fclasses\u002Fcollectionswriteresource","docs\u002Fsdk\u002Freference\u002Fclasses\u002FCollectionsWriteResource",{"title":183,"path":184,"stem":185},"Class: MediaResource","\u002Fdocs\u002Fsdk\u002Freference\u002Fclasses\u002Fmediaresource","docs\u002Fsdk\u002Freference\u002Fclasses\u002FMediaResource",{"title":187,"path":188,"stem":189},"Class: MediaWriteResource","\u002Fdocs\u002Fsdk\u002Freference\u002Fclasses\u002Fmediawriteresource","docs\u002Fsdk\u002Freference\u002Fclasses\u002FMediaWriteResource",{"title":191,"path":192,"stem":193},"Class: PagesResource","\u002Fdocs\u002Fsdk\u002Freference\u002Fclasses\u002Fpagesresource","docs\u002Fsdk\u002Freference\u002Fclasses\u002FPagesResource",{"title":195,"path":196,"stem":197},"Class: PagesWriteResource","\u002Fdocs\u002Fsdk\u002Freference\u002Fclasses\u002Fpageswriteresource","docs\u002Fsdk\u002Freference\u002Fclasses\u002FPagesWriteResource",{"title":199,"path":200,"stem":201},"Class: TentoAuthenticationError","\u002Fdocs\u002Fsdk\u002Freference\u002Fclasses\u002Ftentoauthenticationerror","docs\u002Fsdk\u002Freference\u002Fclasses\u002FTentoAuthenticationError",{"title":203,"path":204,"stem":205},"Class: TentoClient","\u002Fdocs\u002Fsdk\u002Freference\u002Fclasses\u002Ftentoclient","docs\u002Fsdk\u002Freference\u002Fclasses\u002FTentoClient",{"title":207,"path":208,"stem":209},"Class: TentoError","\u002Fdocs\u002Fsdk\u002Freference\u002Fclasses\u002Ftentoerror","docs\u002Fsdk\u002Freference\u002Fclasses\u002FTentoError",{"title":211,"path":212,"stem":213},"Class: TentoNetworkError","\u002Fdocs\u002Fsdk\u002Freference\u002Fclasses\u002Ftentonetworkerror","docs\u002Fsdk\u002Freference\u002Fclasses\u002FTentoNetworkError",{"title":215,"path":216,"stem":217},"Class: TentoNotFoundError","\u002Fdocs\u002Fsdk\u002Freference\u002Fclasses\u002Ftentonotfounderror","docs\u002Fsdk\u002Freference\u002Fclasses\u002FTentoNotFoundError",{"title":219,"path":220,"stem":221},"Class: TentoRateLimitError","\u002Fdocs\u002Fsdk\u002Freference\u002Fclasses\u002Ftentoratelimiterror","docs\u002Fsdk\u002Freference\u002Fclasses\u002FTentoRateLimitError",{"title":223,"path":224,"stem":225,"children":226,"page":65},"Functions","\u002Fdocs\u002Fsdk\u002Freference\u002Ffunctions","docs\u002Fsdk\u002Freference\u002Ffunctions",[227,231],{"title":228,"path":229,"stem":230},"Function: getUrl()","\u002Fdocs\u002Fsdk\u002Freference\u002Ffunctions\u002Fgeturl","docs\u002Fsdk\u002Freference\u002Ffunctions\u002FgetUrl",{"title":232,"path":233,"stem":234},"Function: mockMedia()","\u002Fdocs\u002Fsdk\u002Freference\u002Ffunctions\u002Fmockmedia","docs\u002Fsdk\u002Freference\u002Ffunctions\u002FmockMedia",{"title":236,"path":237,"stem":238,"children":239,"page":65},"Interfaces","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces","docs\u002Fsdk\u002Freference\u002Finterfaces",[240,244,248,252,256,260,264,268,272,276,280,284,288,292,296,300,304,308,312,316,320,324,328,332,336,340,344,348,352,356,360,364,368,372,376],{"title":241,"path":242,"stem":243},"Interface: BlogAuthor","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fblogauthor","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FBlogAuthor",{"title":245,"path":246,"stem":247},"Interface: BlogCategory","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fblogcategory","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FBlogCategory",{"title":249,"path":250,"stem":251},"Interface: BlogPost","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fblogpost","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FBlogPost",{"title":253,"path":254,"stem":255},"Interface: BlogPostListOptions","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fblogpostlistoptions","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FBlogPostListOptions",{"title":257,"path":258,"stem":259},"Interface: BlogTag","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fblogtag","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FBlogTag",{"title":261,"path":262,"stem":263},"Interface: CollectionItemResponse\u003CT>","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fcollectionitemresponse","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FCollectionItemResponse",{"title":265,"path":266,"stem":267},"Interface: CollectionListOptions","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fcollectionlistoptions","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FCollectionListOptions",{"title":269,"path":270,"stem":271},"Interface: CollectionListResponse\u003CT>","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fcollectionlistresponse","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FCollectionListResponse",{"title":273,"path":274,"stem":275},"Interface: CollectionTypeMeta","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fcollectiontypemeta","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FCollectionTypeMeta",{"title":277,"path":278,"stem":279},"Interface: CreateCollectionItemInput","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fcreatecollectioniteminput","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FCreateCollectionItemInput",{"title":281,"path":282,"stem":283},"Interface: CreatePageInput","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fcreatepageinput","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FCreatePageInput",{"title":285,"path":286,"stem":287},"Interface: DryRunResult","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fdryrunresult","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FDryRunResult",{"title":289,"path":290,"stem":291},"Interface: FilterCondition","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Ffiltercondition","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FFilterCondition",{"title":293,"path":294,"stem":295},"Interface: ItemResponse\u003CT>","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fitemresponse","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FItemResponse",{"title":297,"path":298,"stem":299},"Interface: ListResponse\u003CT>","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Flistresponse","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FListResponse",{"title":301,"path":302,"stem":303},"Interface: Media","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fmedia","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FMedia",{"title":305,"path":306,"stem":307},"Interface: MediaItem","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fmediaitem","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FMediaItem",{"title":309,"path":310,"stem":311},"Interface: MediaOption","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fmediaoption","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FMediaOption",{"title":313,"path":314,"stem":315},"Interface: MediaTransformOptions","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fmediatransformoptions","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FMediaTransformOptions",{"title":317,"path":318,"stem":319},"Interface: Page\u003CTContent>","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fpage","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FPage",{"title":321,"path":322,"stem":323},"Interface: PageGetOptions","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fpagegetoptions","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FPageGetOptions",{"title":325,"path":326,"stem":327},"Interface: PageListOptions","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fpagelistoptions","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FPageListOptions",{"title":329,"path":330,"stem":331},"Interface: PageWithRedirect\u003CTContent>","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fpagewithredirect","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FPageWithRedirect",{"title":333,"path":334,"stem":335},"Interface: PaginationMeta","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fpaginationmeta","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FPaginationMeta",{"title":337,"path":338,"stem":339},"Interface: PreviewOption","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fpreviewoption","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FPreviewOption",{"title":341,"path":342,"stem":343},"Interface: RedirectInfo","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fredirectinfo","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FRedirectInfo",{"title":345,"path":346,"stem":347},"Interface: RefTypesOption","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Freftypesoption","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FRefTypesOption",{"title":349,"path":350,"stem":351},"Interface: SeoMetadata","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fseometadata","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FSeoMetadata",{"title":353,"path":354,"stem":355},"Interface: TentoClientConfig","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Ftentoclientconfig","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FTentoClientConfig",{"title":357,"path":358,"stem":359},"Interface: TentoMedia","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Ftentomedia","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FTentoMedia",{"title":361,"path":362,"stem":363},"Interface: UpdateCollectionItemInput","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fupdatecollectioniteminput","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FUpdateCollectionItemInput",{"title":365,"path":366,"stem":367},"Interface: UpdatePageInput","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fupdatepageinput","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FUpdatePageInput",{"title":369,"path":370,"stem":371},"Interface: UploadMediaInput","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fuploadmediainput","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FUploadMediaInput",{"title":373,"path":374,"stem":375},"Interface: WriteCollectionItem","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fwritecollectionitem","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FWriteCollectionItem",{"title":377,"path":378,"stem":379},"Interface: WritePage","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fwritepage","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FWritePage",{"title":381,"path":382,"stem":383,"children":384,"page":65},"Type Aliases","\u002Fdocs\u002Fsdk\u002Freference\u002Ftype-aliases","docs\u002Fsdk\u002Freference\u002Ftype-aliases",[385,389,393,397,401],{"title":386,"path":387,"stem":388},"Type Alias: BlogPostListItem","\u002Fdocs\u002Fsdk\u002Freference\u002Ftype-aliases\u002Fblogpostlistitem","docs\u002Fsdk\u002Freference\u002Ftype-aliases\u002FBlogPostListItem",{"title":390,"path":391,"stem":392},"Type Alias: BlogPostListResponse","\u002Fdocs\u002Fsdk\u002Freference\u002Ftype-aliases\u002Fblogpostlistresponse","docs\u002Fsdk\u002Freference\u002Ftype-aliases\u002FBlogPostListResponse",{"title":394,"path":395,"stem":396},"Type Alias: CollectionItem\u003CTContent>","\u002Fdocs\u002Fsdk\u002Freference\u002Ftype-aliases\u002Fcollectionitem","docs\u002Fsdk\u002Freference\u002Ftype-aliases\u002FCollectionItem",{"title":398,"path":399,"stem":400},"Type Alias: FilterOperator","\u002Fdocs\u002Fsdk\u002Freference\u002Ftype-aliases\u002Ffilteroperator","docs\u002Fsdk\u002Freference\u002Ftype-aliases\u002FFilterOperator",{"title":402,"path":403,"stem":404},"Type Alias: MediaMode","\u002Fdocs\u002Fsdk\u002Freference\u002Ftype-aliases\u002Fmediamode","docs\u002Fsdk\u002Freference\u002Ftype-aliases\u002FMediaMode",{"title":406,"path":407,"stem":408,"children":409,"page":65},"Typegen","\u002Fdocs\u002Ftypegen","docs\u002Ftypegen",[410,413,416],{"title":133,"path":411,"stem":412},"\u002Fdocs\u002Ftypegen\u002Fastro","docs\u002Ftypegen\u002Fastro",{"title":137,"path":414,"stem":415},"\u002Fdocs\u002Ftypegen\u002Fnextjs","docs\u002Ftypegen\u002Fnextjs",{"title":141,"path":417,"stem":418},"\u002Fdocs\u002Ftypegen\u002Fnuxt","docs\u002Ftypegen\u002Fnuxt",[420,450,460,478,556],{"title":5,"path":6,"stem":7,"children":421,"page":65},[422,424,426,428,430,432,434,436,438,440,442,444,446,448],{"title":10,"path":11,"stem":12,"icon":423},"i-lucide-sparkles",{"title":14,"path":15,"stem":16,"icon":425},"i-lucide-newspaper",{"title":18,"path":19,"stem":20,"icon":427},"i-lucide-terminal",{"title":22,"path":23,"stem":24,"icon":429},"i-lucide-layers",{"title":26,"path":27,"stem":28,"icon":431},"i-lucide-type",{"title":30,"path":31,"stem":32,"icon":433},"i-lucide-triangle-alert",{"title":34,"path":35,"stem":36,"icon":435},"i-lucide-image",{"title":38,"path":39,"stem":40,"icon":437},"i-lucide-map",{"title":42,"path":43,"stem":44,"icon":439},"i-lucide-file-text",{"title":46,"path":47,"stem":48,"icon":441},"i-lucide-sliders-horizontal",{"title":50,"path":51,"stem":52,"icon":443},"i-lucide-braces",{"title":54,"path":55,"stem":56,"icon":445},"i-lucide-wrench",{"title":58,"path":59,"stem":60,"icon":447},"i-lucide-shield-check",{"title":62,"path":63,"stem":64,"icon":449},"i-lucide-webhook",{"title":67,"path":68,"stem":69,"children":451,"page":65},[452,454,456,458],{"title":72,"path":73,"stem":74,"icon":453},"i-lucide-key-round",{"title":76,"path":77,"stem":78,"icon":455},"i-lucide-compass",{"title":80,"path":81,"stem":82,"icon":457},"i-lucide-rocket",{"title":84,"path":85,"stem":86,"icon":459},"i-lucide-pencil",{"title":88,"path":89,"stem":90,"children":461,"page":65},[462,464,466,468,470,472,474,476],{"title":93,"path":94,"stem":95,"icon":463},"i-lucide-layout-dashboard",{"title":97,"path":98,"stem":99,"icon":465},"i-lucide-package",{"title":101,"path":102,"stem":103,"icon":467},"i-lucide-git-branch",{"title":105,"path":106,"stem":107,"icon":469},"i-lucide-files",{"title":109,"path":110,"stem":111,"icon":471},"i-lucide-plug-zap",{"title":113,"path":114,"stem":115,"icon":473},"i-lucide-wand",{"title":117,"path":118,"stem":119,"icon":475},"i-lucide-users",{"title":121,"path":122,"stem":123,"icon":477},"i-lucide-pilcrow",{"title":125,"path":126,"stem":127,"children":479,"page":65},[480,481,482,484,486],{"title":38,"path":130,"stem":131,"icon":465},{"title":133,"path":134,"stem":135,"icon":457},{"title":137,"path":138,"stem":139,"icon":483},"i-lucide-triangle",{"title":141,"path":142,"stem":143,"icon":485},"i-lucide-hexagon",{"title":145,"path":146,"stem":147,"children":487,"page":65},[488,490,508,512,549],{"title":150,"path":151,"stem":152,"icon":489},null,{"title":154,"path":155,"stem":156,"children":491,"page":65},[492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507],{"title":159,"path":160,"stem":161,"icon":489},{"title":163,"path":164,"stem":165,"icon":489},{"title":167,"path":168,"stem":169,"icon":489},{"title":171,"path":172,"stem":173,"icon":489},{"title":175,"path":176,"stem":177,"icon":489},{"title":179,"path":180,"stem":181,"icon":489},{"title":183,"path":184,"stem":185,"icon":489},{"title":187,"path":188,"stem":189,"icon":489},{"title":191,"path":192,"stem":193,"icon":489},{"title":195,"path":196,"stem":197,"icon":489},{"title":199,"path":200,"stem":201,"icon":489},{"title":203,"path":204,"stem":205,"icon":489},{"title":207,"path":208,"stem":209,"icon":489},{"title":211,"path":212,"stem":213,"icon":489},{"title":215,"path":216,"stem":217,"icon":489},{"title":219,"path":220,"stem":221,"icon":489},{"title":223,"path":224,"stem":225,"children":509,"page":65},[510,511],{"title":228,"path":229,"stem":230,"icon":489},{"title":232,"path":233,"stem":234,"icon":489},{"title":236,"path":237,"stem":238,"children":513,"page":65},[514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548],{"title":241,"path":242,"stem":243,"icon":489},{"title":245,"path":246,"stem":247,"icon":489},{"title":249,"path":250,"stem":251,"icon":489},{"title":253,"path":254,"stem":255,"icon":489},{"title":257,"path":258,"stem":259,"icon":489},{"title":261,"path":262,"stem":263,"icon":489},{"title":265,"path":266,"stem":267,"icon":489},{"title":269,"path":270,"stem":271,"icon":489},{"title":273,"path":274,"stem":275,"icon":489},{"title":277,"path":278,"stem":279,"icon":489},{"title":281,"path":282,"stem":283,"icon":489},{"title":285,"path":286,"stem":287,"icon":489},{"title":289,"path":290,"stem":291,"icon":489},{"title":293,"path":294,"stem":295,"icon":489},{"title":297,"path":298,"stem":299,"icon":489},{"title":301,"path":302,"stem":303,"icon":489},{"title":305,"path":306,"stem":307,"icon":489},{"title":309,"path":310,"stem":311,"icon":489},{"title":313,"path":314,"stem":315,"icon":489},{"title":317,"path":318,"stem":319,"icon":489},{"title":321,"path":322,"stem":323,"icon":489},{"title":325,"path":326,"stem":327,"icon":489},{"title":329,"path":330,"stem":331,"icon":489},{"title":333,"path":334,"stem":335,"icon":489},{"title":337,"path":338,"stem":339,"icon":489},{"title":341,"path":342,"stem":343,"icon":489},{"title":345,"path":346,"stem":347,"icon":489},{"title":349,"path":350,"stem":351,"icon":489},{"title":353,"path":354,"stem":355,"icon":489},{"title":357,"path":358,"stem":359,"icon":489},{"title":361,"path":362,"stem":363,"icon":489},{"title":365,"path":366,"stem":367,"icon":489},{"title":369,"path":370,"stem":371,"icon":489},{"title":373,"path":374,"stem":375,"icon":489},{"title":377,"path":378,"stem":379,"icon":489},{"title":381,"path":382,"stem":383,"children":550,"page":65},[551,552,553,554,555],{"title":386,"path":387,"stem":388,"icon":489},{"title":390,"path":391,"stem":392,"icon":489},{"title":394,"path":395,"stem":396,"icon":489},{"title":398,"path":399,"stem":400,"icon":489},{"title":402,"path":403,"stem":404,"icon":489},{"title":406,"path":407,"stem":408,"children":557,"page":65},[558,559,560],{"title":133,"path":411,"stem":412,"icon":457},{"title":137,"path":414,"stem":415,"icon":483},{"title":141,"path":417,"stem":418,"icon":485},{"id":562,"title":58,"body":563,"description":5494,"extension":5495,"icon":447,"links":489,"meta":5496,"navigation":3546,"path":59,"seo":5497,"stem":60,"__hash__":5498},"docs\u002Fdocs\u002Fapi\u002Fvalidation.md",{"type":564,"value":565,"toc":5449},"minimark",[566,570,574,577,594,597,600,604,609,612,622,627,858,864,1045,1047,1051,1060,1067,1071,1157,1162,1297,1299,1303,1313,1320,1324,1453,1458,1583,1585,1589,1594,1601,1605,1731,1735,1858,1860,1864,1911,1916,1954,1959,2056,2064,2179,2184,2299,2301,2305,2314,2318,2338,2342,2438,2443,2558,2563,2679,2683,2797,2799,2803,2813,2819,2855,2859,3010,3015,3163,3165,3169,3180,3186,3194,3201,3208,3214,3219,3225,3230,3236,3238,3242,3292,3300,3305,3311,3316,3322,3327,3333,3722,3724,3728,3731,3735,3740,3743,3748,3899,3906,3911,3925,3927,3931,3934,3938,4034,4040,4044,4055,4057,4061,4064,4068,4187,4193,4197,4208,4210,4214,4217,4290,4292,4296,4300,4472,4476,4757,4759,4763,4767,5050,5054,5057,5108,5110,5113,5130,5134,5140,5144,5150,5154,5160,5162,5166,5187,5191,5199,5202,5224,5228,5231,5235,5238,5258,5260,5263,5313,5315,5318,5322,5328,5334,5336,5340,5345,5352,5354,5358,5363,5368,5370,5374,5379,5384,5386,5390,5399,5404,5415,5417,5421,5445],[567,568,569],"p",{},"This document describes all validation rules applied to page type and component schemas by TentoCMS.",[571,572,38],"h2",{"id":573},"overview",[567,575,576],{},"Schemas are validated at two points:",[578,579,580,588],"ol",{},[581,582,583,587],"li",{},[584,585,586],"strong",{},"Client-side"," - As editors build schemas in the admin interface",[581,589,590,593],{},[584,591,592],{},"Server-side"," - When schemas are saved to the API",[567,595,596],{},"Server-side validation is the authoritative check. All validation errors returned from the API must be addressed before saving.",[598,599],"hr",{},[571,601,603],{"id":602},"core-validation-rules","Core Validation Rules",[605,606,608],"h3",{"id":607},"_1-no-duplicate-field-names","1. No Duplicate Field Names",[567,610,611],{},"Each field in a schema must have a unique name.",[567,613,614,617,618],{},[584,615,616],{},"Error Code:"," ",[619,620,621],"code",{},"DUPLICATE_FIELD_NAME",[567,623,624],{},[584,625,626],{},"Example (invalid):",[628,629,634],"pre",{"className":630,"code":631,"language":632,"meta":633,"style":633},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"schema\": [\n    {\n      \"name\": \"title\",\n      \"label\": \"Title\",\n      \"type\": \"text\",\n      \"required\": true\n    },\n    {\n      \"name\": \"title\",  \u002F\u002F ❌ Duplicate name\n      \"label\": \"Post Title\",\n      \"type\": \"text\",\n      \"required\": true\n    }\n  ]\n}\n","json","",[619,635,636,645,664,670,696,717,738,753,759,764,788,808,827,840,846,852],{"__ignoreMap":633},[637,638,641],"span",{"class":639,"line":640},"line",1,[637,642,644],{"class":643},"sMK4o","{\n",[637,646,648,651,655,658,661],{"class":639,"line":647},2,[637,649,650],{"class":643},"  \"",[637,652,654],{"class":653},"spNyl","schema",[637,656,657],{"class":643},"\"",[637,659,660],{"class":643},":",[637,662,663],{"class":643}," [\n",[637,665,667],{"class":639,"line":666},3,[637,668,669],{"class":643},"    {\n",[637,671,673,676,680,682,684,687,691,693],{"class":639,"line":672},4,[637,674,675],{"class":643},"      \"",[637,677,679],{"class":678},"sBMFI","name",[637,681,657],{"class":643},[637,683,660],{"class":643},[637,685,686],{"class":643}," \"",[637,688,690],{"class":689},"sfazB","title",[637,692,657],{"class":643},[637,694,695],{"class":643},",\n",[637,697,699,701,704,706,708,710,713,715],{"class":639,"line":698},5,[637,700,675],{"class":643},[637,702,703],{"class":678},"label",[637,705,657],{"class":643},[637,707,660],{"class":643},[637,709,686],{"class":643},[637,711,712],{"class":689},"Title",[637,714,657],{"class":643},[637,716,695],{"class":643},[637,718,720,722,725,727,729,731,734,736],{"class":639,"line":719},6,[637,721,675],{"class":643},[637,723,724],{"class":678},"type",[637,726,657],{"class":643},[637,728,660],{"class":643},[637,730,686],{"class":643},[637,732,733],{"class":689},"text",[637,735,657],{"class":643},[637,737,695],{"class":643},[637,739,741,743,746,748,750],{"class":639,"line":740},7,[637,742,675],{"class":643},[637,744,745],{"class":678},"required",[637,747,657],{"class":643},[637,749,660],{"class":643},[637,751,752],{"class":643}," true\n",[637,754,756],{"class":639,"line":755},8,[637,757,758],{"class":643},"    },\n",[637,760,762],{"class":639,"line":761},9,[637,763,669],{"class":643},[637,765,767,769,771,773,775,777,779,781,784],{"class":639,"line":766},10,[637,768,675],{"class":643},[637,770,679],{"class":678},[637,772,657],{"class":643},[637,774,660],{"class":643},[637,776,686],{"class":643},[637,778,690],{"class":689},[637,780,657],{"class":643},[637,782,783],{"class":643},",",[637,785,787],{"class":786},"sHwdD","  \u002F\u002F ❌ Duplicate name\n",[637,789,791,793,795,797,799,801,804,806],{"class":639,"line":790},11,[637,792,675],{"class":643},[637,794,703],{"class":678},[637,796,657],{"class":643},[637,798,660],{"class":643},[637,800,686],{"class":643},[637,802,803],{"class":689},"Post Title",[637,805,657],{"class":643},[637,807,695],{"class":643},[637,809,811,813,815,817,819,821,823,825],{"class":639,"line":810},12,[637,812,675],{"class":643},[637,814,724],{"class":678},[637,816,657],{"class":643},[637,818,660],{"class":643},[637,820,686],{"class":643},[637,822,733],{"class":689},[637,824,657],{"class":643},[637,826,695],{"class":643},[637,828,830,832,834,836,838],{"class":639,"line":829},13,[637,831,675],{"class":643},[637,833,745],{"class":678},[637,835,657],{"class":643},[637,837,660],{"class":643},[637,839,752],{"class":643},[637,841,843],{"class":639,"line":842},14,[637,844,845],{"class":643},"    }\n",[637,847,849],{"class":639,"line":848},15,[637,850,851],{"class":643},"  ]\n",[637,853,855],{"class":639,"line":854},16,[637,856,857],{"class":643},"}\n",[567,859,860,863],{},[584,861,862],{},"Fix:"," Use unique field names:",[628,865,867],{"className":630,"code":866,"language":632,"meta":633,"style":633},"{\n  \"schema\": [\n    {\n      \"name\": \"title\",\n      \"label\": \"Title\",\n      \"type\": \"text\",\n      \"required\": true\n    },\n    {\n      \"name\": \"postTitle\",  \u002F\u002F ✅ Unique name\n      \"label\": \"Post Title\",\n      \"type\": \"text\",\n      \"required\": true\n    }\n  ]\n}\n",[619,868,869,873,885,889,907,925,943,955,959,963,985,1003,1021,1033,1037,1041],{"__ignoreMap":633},[637,870,871],{"class":639,"line":640},[637,872,644],{"class":643},[637,874,875,877,879,881,883],{"class":639,"line":647},[637,876,650],{"class":643},[637,878,654],{"class":653},[637,880,657],{"class":643},[637,882,660],{"class":643},[637,884,663],{"class":643},[637,886,887],{"class":639,"line":666},[637,888,669],{"class":643},[637,890,891,893,895,897,899,901,903,905],{"class":639,"line":672},[637,892,675],{"class":643},[637,894,679],{"class":678},[637,896,657],{"class":643},[637,898,660],{"class":643},[637,900,686],{"class":643},[637,902,690],{"class":689},[637,904,657],{"class":643},[637,906,695],{"class":643},[637,908,909,911,913,915,917,919,921,923],{"class":639,"line":698},[637,910,675],{"class":643},[637,912,703],{"class":678},[637,914,657],{"class":643},[637,916,660],{"class":643},[637,918,686],{"class":643},[637,920,712],{"class":689},[637,922,657],{"class":643},[637,924,695],{"class":643},[637,926,927,929,931,933,935,937,939,941],{"class":639,"line":719},[637,928,675],{"class":643},[637,930,724],{"class":678},[637,932,657],{"class":643},[637,934,660],{"class":643},[637,936,686],{"class":643},[637,938,733],{"class":689},[637,940,657],{"class":643},[637,942,695],{"class":643},[637,944,945,947,949,951,953],{"class":639,"line":740},[637,946,675],{"class":643},[637,948,745],{"class":678},[637,950,657],{"class":643},[637,952,660],{"class":643},[637,954,752],{"class":643},[637,956,957],{"class":639,"line":755},[637,958,758],{"class":643},[637,960,961],{"class":639,"line":761},[637,962,669],{"class":643},[637,964,965,967,969,971,973,975,978,980,982],{"class":639,"line":766},[637,966,675],{"class":643},[637,968,679],{"class":678},[637,970,657],{"class":643},[637,972,660],{"class":643},[637,974,686],{"class":643},[637,976,977],{"class":689},"postTitle",[637,979,657],{"class":643},[637,981,783],{"class":643},[637,983,984],{"class":786},"  \u002F\u002F ✅ Unique name\n",[637,986,987,989,991,993,995,997,999,1001],{"class":639,"line":790},[637,988,675],{"class":643},[637,990,703],{"class":678},[637,992,657],{"class":643},[637,994,660],{"class":643},[637,996,686],{"class":643},[637,998,803],{"class":689},[637,1000,657],{"class":643},[637,1002,695],{"class":643},[637,1004,1005,1007,1009,1011,1013,1015,1017,1019],{"class":639,"line":810},[637,1006,675],{"class":643},[637,1008,724],{"class":678},[637,1010,657],{"class":643},[637,1012,660],{"class":643},[637,1014,686],{"class":643},[637,1016,733],{"class":689},[637,1018,657],{"class":643},[637,1020,695],{"class":643},[637,1022,1023,1025,1027,1029,1031],{"class":639,"line":829},[637,1024,675],{"class":643},[637,1026,745],{"class":678},[637,1028,657],{"class":643},[637,1030,660],{"class":643},[637,1032,752],{"class":643},[637,1034,1035],{"class":639,"line":842},[637,1036,845],{"class":643},[637,1038,1039],{"class":639,"line":848},[637,1040,851],{"class":643},[637,1042,1043],{"class":639,"line":854},[637,1044,857],{"class":643},[598,1046],{},[605,1048,1050],{"id":1049},"_2-valid-field-type","2. Valid Field Type",[567,1052,1053,1054,1059],{},"Field type must be one of the supported TentoCMS field types. See the ",[1055,1056,1058],"a",{"href":1057},".\u002Ffield-types","Field Types Reference"," for the canonical catalogue of all supported types.",[567,1061,1062,617,1064],{},[584,1063,616],{},[619,1065,1066],{},"INVALID_FIELD_TYPE",[567,1068,1069],{},[584,1070,626],{},[628,1072,1074],{"className":630,"code":1073,"language":632,"meta":633,"style":633},"{\n  \"name\": \"rating\",\n  \"label\": \"Rating\",\n  \"type\": \"star_rating\",  \u002F\u002F ❌ Not a supported type\n  \"required\": false\n}\n",[619,1075,1076,1080,1099,1118,1140,1153],{"__ignoreMap":633},[637,1077,1078],{"class":639,"line":640},[637,1079,644],{"class":643},[637,1081,1082,1084,1086,1088,1090,1092,1095,1097],{"class":639,"line":647},[637,1083,650],{"class":643},[637,1085,679],{"class":653},[637,1087,657],{"class":643},[637,1089,660],{"class":643},[637,1091,686],{"class":643},[637,1093,1094],{"class":689},"rating",[637,1096,657],{"class":643},[637,1098,695],{"class":643},[637,1100,1101,1103,1105,1107,1109,1111,1114,1116],{"class":639,"line":666},[637,1102,650],{"class":643},[637,1104,703],{"class":653},[637,1106,657],{"class":643},[637,1108,660],{"class":643},[637,1110,686],{"class":643},[637,1112,1113],{"class":689},"Rating",[637,1115,657],{"class":643},[637,1117,695],{"class":643},[637,1119,1120,1122,1124,1126,1128,1130,1133,1135,1137],{"class":639,"line":672},[637,1121,650],{"class":643},[637,1123,724],{"class":653},[637,1125,657],{"class":643},[637,1127,660],{"class":643},[637,1129,686],{"class":643},[637,1131,1132],{"class":689},"star_rating",[637,1134,657],{"class":643},[637,1136,783],{"class":643},[637,1138,1139],{"class":786},"  \u002F\u002F ❌ Not a supported type\n",[637,1141,1142,1144,1146,1148,1150],{"class":639,"line":698},[637,1143,650],{"class":643},[637,1145,745],{"class":653},[637,1147,657],{"class":643},[637,1149,660],{"class":643},[637,1151,1152],{"class":643}," false\n",[637,1154,1155],{"class":639,"line":719},[637,1156,857],{"class":643},[567,1158,1159,1161],{},[584,1160,862],{}," Use a valid field type:",[628,1163,1165],{"className":630,"code":1164,"language":632,"meta":633,"style":633},"{\n  \"name\": \"rating\",\n  \"label\": \"Rating\",\n  \"type\": \"number\",  \u002F\u002F ✅ Valid type\n  \"required\": false,\n  \"options\": {\n    \"min\": 1,\n    \"max\": 5\n  }\n}\n",[619,1166,1167,1171,1189,1207,1229,1242,1256,1274,1288,1293],{"__ignoreMap":633},[637,1168,1169],{"class":639,"line":640},[637,1170,644],{"class":643},[637,1172,1173,1175,1177,1179,1181,1183,1185,1187],{"class":639,"line":647},[637,1174,650],{"class":643},[637,1176,679],{"class":653},[637,1178,657],{"class":643},[637,1180,660],{"class":643},[637,1182,686],{"class":643},[637,1184,1094],{"class":689},[637,1186,657],{"class":643},[637,1188,695],{"class":643},[637,1190,1191,1193,1195,1197,1199,1201,1203,1205],{"class":639,"line":666},[637,1192,650],{"class":643},[637,1194,703],{"class":653},[637,1196,657],{"class":643},[637,1198,660],{"class":643},[637,1200,686],{"class":643},[637,1202,1113],{"class":689},[637,1204,657],{"class":643},[637,1206,695],{"class":643},[637,1208,1209,1211,1213,1215,1217,1219,1222,1224,1226],{"class":639,"line":672},[637,1210,650],{"class":643},[637,1212,724],{"class":653},[637,1214,657],{"class":643},[637,1216,660],{"class":643},[637,1218,686],{"class":643},[637,1220,1221],{"class":689},"number",[637,1223,657],{"class":643},[637,1225,783],{"class":643},[637,1227,1228],{"class":786},"  \u002F\u002F ✅ Valid type\n",[637,1230,1231,1233,1235,1237,1239],{"class":639,"line":698},[637,1232,650],{"class":643},[637,1234,745],{"class":653},[637,1236,657],{"class":643},[637,1238,660],{"class":643},[637,1240,1241],{"class":643}," false,\n",[637,1243,1244,1246,1249,1251,1253],{"class":639,"line":719},[637,1245,650],{"class":643},[637,1247,1248],{"class":653},"options",[637,1250,657],{"class":643},[637,1252,660],{"class":643},[637,1254,1255],{"class":643}," {\n",[637,1257,1258,1261,1264,1266,1268,1272],{"class":639,"line":740},[637,1259,1260],{"class":643},"    \"",[637,1262,1263],{"class":678},"min",[637,1265,657],{"class":643},[637,1267,660],{"class":643},[637,1269,1271],{"class":1270},"sbssI"," 1",[637,1273,695],{"class":643},[637,1275,1276,1278,1281,1283,1285],{"class":639,"line":755},[637,1277,1260],{"class":643},[637,1279,1280],{"class":678},"max",[637,1282,657],{"class":643},[637,1284,660],{"class":643},[637,1286,1287],{"class":1270}," 5\n",[637,1289,1290],{"class":639,"line":761},[637,1291,1292],{"class":643},"  }\n",[637,1294,1295],{"class":639,"line":766},[637,1296,857],{"class":643},[598,1298],{},[605,1300,1302],{"id":1301},"_3-text-field-constraints","3. Text Field Constraints",[567,1304,1305,1306,1308,1309,1312],{},"For ",[619,1307,733],{}," and ",[619,1310,1311],{},"textarea"," fields, if both minLength and maxLength are specified, minLength must not exceed maxLength.",[567,1314,1315,617,1317],{},[584,1316,616],{},[619,1318,1319],{},"INVALID_LENGTH_RANGE",[567,1321,1322],{},[584,1323,626],{},[628,1325,1327],{"className":630,"code":1326,"language":632,"meta":633,"style":633},"{\n  \"name\": \"title\",\n  \"label\": \"Title\",\n  \"type\": \"text\",\n  \"required\": true,\n  \"options\": {\n    \"minLength\": 200,\n    \"maxLength\": 100  \u002F\u002F ❌ Max is less than min\n  }\n}\n",[619,1328,1329,1333,1351,1369,1387,1400,1412,1428,1445,1449],{"__ignoreMap":633},[637,1330,1331],{"class":639,"line":640},[637,1332,644],{"class":643},[637,1334,1335,1337,1339,1341,1343,1345,1347,1349],{"class":639,"line":647},[637,1336,650],{"class":643},[637,1338,679],{"class":653},[637,1340,657],{"class":643},[637,1342,660],{"class":643},[637,1344,686],{"class":643},[637,1346,690],{"class":689},[637,1348,657],{"class":643},[637,1350,695],{"class":643},[637,1352,1353,1355,1357,1359,1361,1363,1365,1367],{"class":639,"line":666},[637,1354,650],{"class":643},[637,1356,703],{"class":653},[637,1358,657],{"class":643},[637,1360,660],{"class":643},[637,1362,686],{"class":643},[637,1364,712],{"class":689},[637,1366,657],{"class":643},[637,1368,695],{"class":643},[637,1370,1371,1373,1375,1377,1379,1381,1383,1385],{"class":639,"line":672},[637,1372,650],{"class":643},[637,1374,724],{"class":653},[637,1376,657],{"class":643},[637,1378,660],{"class":643},[637,1380,686],{"class":643},[637,1382,733],{"class":689},[637,1384,657],{"class":643},[637,1386,695],{"class":643},[637,1388,1389,1391,1393,1395,1397],{"class":639,"line":698},[637,1390,650],{"class":643},[637,1392,745],{"class":653},[637,1394,657],{"class":643},[637,1396,660],{"class":643},[637,1398,1399],{"class":643}," true,\n",[637,1401,1402,1404,1406,1408,1410],{"class":639,"line":719},[637,1403,650],{"class":643},[637,1405,1248],{"class":653},[637,1407,657],{"class":643},[637,1409,660],{"class":643},[637,1411,1255],{"class":643},[637,1413,1414,1416,1419,1421,1423,1426],{"class":639,"line":740},[637,1415,1260],{"class":643},[637,1417,1418],{"class":678},"minLength",[637,1420,657],{"class":643},[637,1422,660],{"class":643},[637,1424,1425],{"class":1270}," 200",[637,1427,695],{"class":643},[637,1429,1430,1432,1435,1437,1439,1442],{"class":639,"line":755},[637,1431,1260],{"class":643},[637,1433,1434],{"class":678},"maxLength",[637,1436,657],{"class":643},[637,1438,660],{"class":643},[637,1440,1441],{"class":1270}," 100",[637,1443,1444],{"class":786},"  \u002F\u002F ❌ Max is less than min\n",[637,1446,1447],{"class":639,"line":761},[637,1448,1292],{"class":643},[637,1450,1451],{"class":639,"line":766},[637,1452,857],{"class":643},[567,1454,1455,1457],{},[584,1456,862],{}," Correct the range:",[628,1459,1461],{"className":630,"code":1460,"language":632,"meta":633,"style":633},"{\n  \"name\": \"title\",\n  \"label\": \"Title\",\n  \"type\": \"text\",\n  \"required\": true,\n  \"options\": {\n    \"minLength\": 50,\n    \"maxLength\": 200  \u002F\u002F ✅ Max is greater than min\n  }\n}\n",[619,1462,1463,1467,1485,1503,1521,1533,1545,1560,1575,1579],{"__ignoreMap":633},[637,1464,1465],{"class":639,"line":640},[637,1466,644],{"class":643},[637,1468,1469,1471,1473,1475,1477,1479,1481,1483],{"class":639,"line":647},[637,1470,650],{"class":643},[637,1472,679],{"class":653},[637,1474,657],{"class":643},[637,1476,660],{"class":643},[637,1478,686],{"class":643},[637,1480,690],{"class":689},[637,1482,657],{"class":643},[637,1484,695],{"class":643},[637,1486,1487,1489,1491,1493,1495,1497,1499,1501],{"class":639,"line":666},[637,1488,650],{"class":643},[637,1490,703],{"class":653},[637,1492,657],{"class":643},[637,1494,660],{"class":643},[637,1496,686],{"class":643},[637,1498,712],{"class":689},[637,1500,657],{"class":643},[637,1502,695],{"class":643},[637,1504,1505,1507,1509,1511,1513,1515,1517,1519],{"class":639,"line":672},[637,1506,650],{"class":643},[637,1508,724],{"class":653},[637,1510,657],{"class":643},[637,1512,660],{"class":643},[637,1514,686],{"class":643},[637,1516,733],{"class":689},[637,1518,657],{"class":643},[637,1520,695],{"class":643},[637,1522,1523,1525,1527,1529,1531],{"class":639,"line":698},[637,1524,650],{"class":643},[637,1526,745],{"class":653},[637,1528,657],{"class":643},[637,1530,660],{"class":643},[637,1532,1399],{"class":643},[637,1534,1535,1537,1539,1541,1543],{"class":639,"line":719},[637,1536,650],{"class":643},[637,1538,1248],{"class":653},[637,1540,657],{"class":643},[637,1542,660],{"class":643},[637,1544,1255],{"class":643},[637,1546,1547,1549,1551,1553,1555,1558],{"class":639,"line":740},[637,1548,1260],{"class":643},[637,1550,1418],{"class":678},[637,1552,657],{"class":643},[637,1554,660],{"class":643},[637,1556,1557],{"class":1270}," 50",[637,1559,695],{"class":643},[637,1561,1562,1564,1566,1568,1570,1572],{"class":639,"line":755},[637,1563,1260],{"class":643},[637,1565,1434],{"class":678},[637,1567,657],{"class":643},[637,1569,660],{"class":643},[637,1571,1425],{"class":1270},[637,1573,1574],{"class":786},"  \u002F\u002F ✅ Max is greater than min\n",[637,1576,1577],{"class":639,"line":761},[637,1578,1292],{"class":643},[637,1580,1581],{"class":639,"line":766},[637,1582,857],{"class":643},[598,1584],{},[605,1586,1588],{"id":1587},"_4-number-field-constraints","4. Number Field Constraints",[567,1590,1305,1591,1593],{},[619,1592,1221],{}," fields, if both min and max are specified, min must not exceed max.",[567,1595,1596,617,1598],{},[584,1597,616],{},[619,1599,1600],{},"INVALID_NUMBER_RANGE",[567,1602,1603],{},[584,1604,626],{},[628,1606,1608],{"className":630,"code":1607,"language":632,"meta":633,"style":633},"{\n  \"name\": \"quantity\",\n  \"label\": \"Quantity\",\n  \"type\": \"number\",\n  \"required\": true,\n  \"options\": {\n    \"min\": 100,\n    \"max\": 10  \u002F\u002F ❌ Max is less than min\n  }\n}\n",[619,1609,1610,1614,1633,1652,1670,1682,1694,1708,1723,1727],{"__ignoreMap":633},[637,1611,1612],{"class":639,"line":640},[637,1613,644],{"class":643},[637,1615,1616,1618,1620,1622,1624,1626,1629,1631],{"class":639,"line":647},[637,1617,650],{"class":643},[637,1619,679],{"class":653},[637,1621,657],{"class":643},[637,1623,660],{"class":643},[637,1625,686],{"class":643},[637,1627,1628],{"class":689},"quantity",[637,1630,657],{"class":643},[637,1632,695],{"class":643},[637,1634,1635,1637,1639,1641,1643,1645,1648,1650],{"class":639,"line":666},[637,1636,650],{"class":643},[637,1638,703],{"class":653},[637,1640,657],{"class":643},[637,1642,660],{"class":643},[637,1644,686],{"class":643},[637,1646,1647],{"class":689},"Quantity",[637,1649,657],{"class":643},[637,1651,695],{"class":643},[637,1653,1654,1656,1658,1660,1662,1664,1666,1668],{"class":639,"line":672},[637,1655,650],{"class":643},[637,1657,724],{"class":653},[637,1659,657],{"class":643},[637,1661,660],{"class":643},[637,1663,686],{"class":643},[637,1665,1221],{"class":689},[637,1667,657],{"class":643},[637,1669,695],{"class":643},[637,1671,1672,1674,1676,1678,1680],{"class":639,"line":698},[637,1673,650],{"class":643},[637,1675,745],{"class":653},[637,1677,657],{"class":643},[637,1679,660],{"class":643},[637,1681,1399],{"class":643},[637,1683,1684,1686,1688,1690,1692],{"class":639,"line":719},[637,1685,650],{"class":643},[637,1687,1248],{"class":653},[637,1689,657],{"class":643},[637,1691,660],{"class":643},[637,1693,1255],{"class":643},[637,1695,1696,1698,1700,1702,1704,1706],{"class":639,"line":740},[637,1697,1260],{"class":643},[637,1699,1263],{"class":678},[637,1701,657],{"class":643},[637,1703,660],{"class":643},[637,1705,1441],{"class":1270},[637,1707,695],{"class":643},[637,1709,1710,1712,1714,1716,1718,1721],{"class":639,"line":755},[637,1711,1260],{"class":643},[637,1713,1280],{"class":678},[637,1715,657],{"class":643},[637,1717,660],{"class":643},[637,1719,1720],{"class":1270}," 10",[637,1722,1444],{"class":786},[637,1724,1725],{"class":639,"line":761},[637,1726,1292],{"class":643},[637,1728,1729],{"class":639,"line":766},[637,1730,857],{"class":643},[567,1732,1733,1457],{},[584,1734,862],{},[628,1736,1738],{"className":630,"code":1737,"language":632,"meta":633,"style":633},"{\n  \"name\": \"quantity\",\n  \"label\": \"Quantity\",\n  \"type\": \"number\",\n  \"required\": true,\n  \"options\": {\n    \"min\": 10,\n    \"max\": 100  \u002F\u002F ✅ Max is greater than min\n  }\n}\n",[619,1739,1740,1744,1762,1780,1798,1810,1822,1836,1850,1854],{"__ignoreMap":633},[637,1741,1742],{"class":639,"line":640},[637,1743,644],{"class":643},[637,1745,1746,1748,1750,1752,1754,1756,1758,1760],{"class":639,"line":647},[637,1747,650],{"class":643},[637,1749,679],{"class":653},[637,1751,657],{"class":643},[637,1753,660],{"class":643},[637,1755,686],{"class":643},[637,1757,1628],{"class":689},[637,1759,657],{"class":643},[637,1761,695],{"class":643},[637,1763,1764,1766,1768,1770,1772,1774,1776,1778],{"class":639,"line":666},[637,1765,650],{"class":643},[637,1767,703],{"class":653},[637,1769,657],{"class":643},[637,1771,660],{"class":643},[637,1773,686],{"class":643},[637,1775,1647],{"class":689},[637,1777,657],{"class":643},[637,1779,695],{"class":643},[637,1781,1782,1784,1786,1788,1790,1792,1794,1796],{"class":639,"line":672},[637,1783,650],{"class":643},[637,1785,724],{"class":653},[637,1787,657],{"class":643},[637,1789,660],{"class":643},[637,1791,686],{"class":643},[637,1793,1221],{"class":689},[637,1795,657],{"class":643},[637,1797,695],{"class":643},[637,1799,1800,1802,1804,1806,1808],{"class":639,"line":698},[637,1801,650],{"class":643},[637,1803,745],{"class":653},[637,1805,657],{"class":643},[637,1807,660],{"class":643},[637,1809,1399],{"class":643},[637,1811,1812,1814,1816,1818,1820],{"class":639,"line":719},[637,1813,650],{"class":643},[637,1815,1248],{"class":653},[637,1817,657],{"class":643},[637,1819,660],{"class":643},[637,1821,1255],{"class":643},[637,1823,1824,1826,1828,1830,1832,1834],{"class":639,"line":740},[637,1825,1260],{"class":643},[637,1827,1263],{"class":678},[637,1829,657],{"class":643},[637,1831,660],{"class":643},[637,1833,1720],{"class":1270},[637,1835,695],{"class":643},[637,1837,1838,1840,1842,1844,1846,1848],{"class":639,"line":755},[637,1839,1260],{"class":643},[637,1841,1280],{"class":678},[637,1843,657],{"class":643},[637,1845,660],{"class":643},[637,1847,1441],{"class":1270},[637,1849,1574],{"class":786},[637,1851,1852],{"class":639,"line":761},[637,1853,1292],{"class":643},[637,1855,1856],{"class":639,"line":766},[637,1857,857],{"class":643},[598,1859],{},[605,1861,1863],{"id":1862},"_5-reference-field-validation","5. Reference Field Validation",[567,1865,1866,1869,1870,1873,1874,1881,1882,1885,1886,1889,1890,1892,1893,1896,1897,1900,1901,1892,1903,1906,1907,1910],{},[619,1867,1868],{},"reference"," fields must specify a ",[619,1871,1872],{},"collectionType"," in options ",[584,1875,1876,1877,1880],{},"only in the default\u002F",[619,1878,1879],{},"collectionItem"," reference mode"," (",[619,1883,1884],{},"referenceType"," unset or ",[619,1887,1888],{},"'collectionItem'","). It's forbidden when ",[619,1891,1884],{}," is ",[619,1894,1895],{},"'user'","\u002F",[619,1898,1899],{},"'blogPost'",", and unused when ",[619,1902,1884],{},[619,1904,1905],{},"'page'"," (see the ",[1055,1908,1058],{"href":1909},".\u002Ffield-types#reference"," for the full breakdown).",[567,1912,1913],{},[584,1914,1915],{},"Error Codes:",[1917,1918,1919,1928],"ul",{},[581,1920,1921,1924,1925,1927],{},[619,1922,1923],{},"MISSING_COLLECTION_TYPE"," - collectionType not provided in ",[619,1926,1879],{}," mode",[581,1929,1930,1933,1934,1937,1938,1941,1942,1945,1946,1948,1949,1953],{},[619,1931,1932],{},"INVALID_COLLECTION_TYPE"," - specified collection doesn't exist — ",[584,1935,1936],{},"currently unreachable",": this code only fires when an ",[619,1939,1940],{},"existingCollectionTypes"," list is passed into ",[619,1943,1944],{},"validateSchema()",", and no production route passes it, so a nonexistent ",[619,1947,1872],{}," is silently accepted today (see the note under ",[1055,1950,1952],{"href":1951},"#validation-flow","Validation Flow"," below)",[567,1955,1956],{},[584,1957,1958],{},"Example (invalid - missing):",[628,1960,1962],{"className":630,"code":1961,"language":632,"meta":633,"style":633},"{\n  \"name\": \"author\",\n  \"label\": \"Author\",\n  \"type\": \"reference\",\n  \"required\": true,\n  \"options\": {}  \u002F\u002F ❌ No collectionType\n}\n",[619,1963,1964,1968,1987,2006,2024,2036,2052],{"__ignoreMap":633},[637,1965,1966],{"class":639,"line":640},[637,1967,644],{"class":643},[637,1969,1970,1972,1974,1976,1978,1980,1983,1985],{"class":639,"line":647},[637,1971,650],{"class":643},[637,1973,679],{"class":653},[637,1975,657],{"class":643},[637,1977,660],{"class":643},[637,1979,686],{"class":643},[637,1981,1982],{"class":689},"author",[637,1984,657],{"class":643},[637,1986,695],{"class":643},[637,1988,1989,1991,1993,1995,1997,1999,2002,2004],{"class":639,"line":666},[637,1990,650],{"class":643},[637,1992,703],{"class":653},[637,1994,657],{"class":643},[637,1996,660],{"class":643},[637,1998,686],{"class":643},[637,2000,2001],{"class":689},"Author",[637,2003,657],{"class":643},[637,2005,695],{"class":643},[637,2007,2008,2010,2012,2014,2016,2018,2020,2022],{"class":639,"line":672},[637,2009,650],{"class":643},[637,2011,724],{"class":653},[637,2013,657],{"class":643},[637,2015,660],{"class":643},[637,2017,686],{"class":643},[637,2019,1868],{"class":689},[637,2021,657],{"class":643},[637,2023,695],{"class":643},[637,2025,2026,2028,2030,2032,2034],{"class":639,"line":698},[637,2027,650],{"class":643},[637,2029,745],{"class":653},[637,2031,657],{"class":643},[637,2033,660],{"class":643},[637,2035,1399],{"class":643},[637,2037,2038,2040,2042,2044,2046,2049],{"class":639,"line":719},[637,2039,650],{"class":643},[637,2041,1248],{"class":653},[637,2043,657],{"class":643},[637,2045,660],{"class":643},[637,2047,2048],{"class":643}," {}",[637,2050,2051],{"class":786},"  \u002F\u002F ❌ No collectionType\n",[637,2053,2054],{"class":639,"line":740},[637,2055,857],{"class":643},[567,2057,2058],{},[584,2059,2060,2061,2063],{},"Example (accepted today despite the target not existing — ",[619,2062,1932],{}," never fires):",[628,2065,2067],{"className":630,"code":2066,"language":632,"meta":633,"style":633},"{\n  \"name\": \"author\",\n  \"label\": \"Author\",\n  \"type\": \"reference\",\n  \"required\": true,\n  \"options\": {\n    \"collectionType\": \"nonexistent_collection\"  \u002F\u002F Not currently rejected — see note above\n  }\n}\n",[619,2068,2069,2073,2091,2109,2127,2139,2151,2171,2175],{"__ignoreMap":633},[637,2070,2071],{"class":639,"line":640},[637,2072,644],{"class":643},[637,2074,2075,2077,2079,2081,2083,2085,2087,2089],{"class":639,"line":647},[637,2076,650],{"class":643},[637,2078,679],{"class":653},[637,2080,657],{"class":643},[637,2082,660],{"class":643},[637,2084,686],{"class":643},[637,2086,1982],{"class":689},[637,2088,657],{"class":643},[637,2090,695],{"class":643},[637,2092,2093,2095,2097,2099,2101,2103,2105,2107],{"class":639,"line":666},[637,2094,650],{"class":643},[637,2096,703],{"class":653},[637,2098,657],{"class":643},[637,2100,660],{"class":643},[637,2102,686],{"class":643},[637,2104,2001],{"class":689},[637,2106,657],{"class":643},[637,2108,695],{"class":643},[637,2110,2111,2113,2115,2117,2119,2121,2123,2125],{"class":639,"line":672},[637,2112,650],{"class":643},[637,2114,724],{"class":653},[637,2116,657],{"class":643},[637,2118,660],{"class":643},[637,2120,686],{"class":643},[637,2122,1868],{"class":689},[637,2124,657],{"class":643},[637,2126,695],{"class":643},[637,2128,2129,2131,2133,2135,2137],{"class":639,"line":698},[637,2130,650],{"class":643},[637,2132,745],{"class":653},[637,2134,657],{"class":643},[637,2136,660],{"class":643},[637,2138,1399],{"class":643},[637,2140,2141,2143,2145,2147,2149],{"class":639,"line":719},[637,2142,650],{"class":643},[637,2144,1248],{"class":653},[637,2146,657],{"class":643},[637,2148,660],{"class":643},[637,2150,1255],{"class":643},[637,2152,2153,2155,2157,2159,2161,2163,2166,2168],{"class":639,"line":740},[637,2154,1260],{"class":643},[637,2156,1872],{"class":678},[637,2158,657],{"class":643},[637,2160,660],{"class":643},[637,2162,686],{"class":643},[637,2164,2165],{"class":689},"nonexistent_collection",[637,2167,657],{"class":643},[637,2169,2170],{"class":786},"  \u002F\u002F Not currently rejected — see note above\n",[637,2172,2173],{"class":639,"line":755},[637,2174,1292],{"class":643},[637,2176,2177],{"class":639,"line":761},[637,2178,857],{"class":643},[567,2180,2181],{},[584,2182,2183],{},"Fix (missing case):",[628,2185,2187],{"className":630,"code":2186,"language":632,"meta":633,"style":633},"{\n  \"name\": \"author\",\n  \"label\": \"Author\",\n  \"type\": \"reference\",\n  \"required\": true,\n  \"options\": {\n    \"collectionType\": \"authors\"  \u002F\u002F ✅ Valid collection\n  }\n}\n",[619,2188,2189,2193,2211,2229,2247,2259,2271,2291,2295],{"__ignoreMap":633},[637,2190,2191],{"class":639,"line":640},[637,2192,644],{"class":643},[637,2194,2195,2197,2199,2201,2203,2205,2207,2209],{"class":639,"line":647},[637,2196,650],{"class":643},[637,2198,679],{"class":653},[637,2200,657],{"class":643},[637,2202,660],{"class":643},[637,2204,686],{"class":643},[637,2206,1982],{"class":689},[637,2208,657],{"class":643},[637,2210,695],{"class":643},[637,2212,2213,2215,2217,2219,2221,2223,2225,2227],{"class":639,"line":666},[637,2214,650],{"class":643},[637,2216,703],{"class":653},[637,2218,657],{"class":643},[637,2220,660],{"class":643},[637,2222,686],{"class":643},[637,2224,2001],{"class":689},[637,2226,657],{"class":643},[637,2228,695],{"class":643},[637,2230,2231,2233,2235,2237,2239,2241,2243,2245],{"class":639,"line":672},[637,2232,650],{"class":643},[637,2234,724],{"class":653},[637,2236,657],{"class":643},[637,2238,660],{"class":643},[637,2240,686],{"class":643},[637,2242,1868],{"class":689},[637,2244,657],{"class":643},[637,2246,695],{"class":643},[637,2248,2249,2251,2253,2255,2257],{"class":639,"line":698},[637,2250,650],{"class":643},[637,2252,745],{"class":653},[637,2254,657],{"class":643},[637,2256,660],{"class":643},[637,2258,1399],{"class":643},[637,2260,2261,2263,2265,2267,2269],{"class":639,"line":719},[637,2262,650],{"class":643},[637,2264,1248],{"class":653},[637,2266,657],{"class":643},[637,2268,660],{"class":643},[637,2270,1255],{"class":643},[637,2272,2273,2275,2277,2279,2281,2283,2286,2288],{"class":639,"line":740},[637,2274,1260],{"class":643},[637,2276,1872],{"class":678},[637,2278,657],{"class":643},[637,2280,660],{"class":643},[637,2282,686],{"class":643},[637,2284,2285],{"class":689},"authors",[637,2287,657],{"class":643},[637,2289,2290],{"class":786},"  \u002F\u002F ✅ Valid collection\n",[637,2292,2293],{"class":639,"line":755},[637,2294,1292],{"class":643},[637,2296,2297],{"class":639,"line":761},[637,2298,857],{"class":643},[598,2300],{},[605,2302,2304],{"id":2303},"_6-nested-component-validation","6. Nested Component Validation",[567,2306,2307,1869,2310,2313],{},[619,2308,2309],{},"nestedComponent",[619,2311,2312],{},"componentSlug"," in options.",[567,2315,2316],{},[584,2317,1915],{},[1917,2319,2320,2326,2332],{},[581,2321,2322,2325],{},[619,2323,2324],{},"MISSING_COMPONENT_SLUG"," - componentSlug not provided",[581,2327,2328,2331],{},[619,2329,2330],{},"INVALID_COMPONENT_REFERENCE"," - specified component doesn't exist",[581,2333,2334,2337],{},[619,2335,2336],{},"CIRCULAR_REFERENCE"," - component references itself",[567,2339,2340],{},[584,2341,1958],{},[628,2343,2345],{"className":630,"code":2344,"language":632,"meta":633,"style":633},"{\n  \"name\": \"header\",\n  \"label\": \"Header\",\n  \"type\": \"nestedComponent\",\n  \"required\": true,\n  \"options\": {}  \u002F\u002F ❌ No componentSlug\n}\n",[619,2346,2347,2351,2370,2389,2407,2419,2434],{"__ignoreMap":633},[637,2348,2349],{"class":639,"line":640},[637,2350,644],{"class":643},[637,2352,2353,2355,2357,2359,2361,2363,2366,2368],{"class":639,"line":647},[637,2354,650],{"class":643},[637,2356,679],{"class":653},[637,2358,657],{"class":643},[637,2360,660],{"class":643},[637,2362,686],{"class":643},[637,2364,2365],{"class":689},"header",[637,2367,657],{"class":643},[637,2369,695],{"class":643},[637,2371,2372,2374,2376,2378,2380,2382,2385,2387],{"class":639,"line":666},[637,2373,650],{"class":643},[637,2375,703],{"class":653},[637,2377,657],{"class":643},[637,2379,660],{"class":643},[637,2381,686],{"class":643},[637,2383,2384],{"class":689},"Header",[637,2386,657],{"class":643},[637,2388,695],{"class":643},[637,2390,2391,2393,2395,2397,2399,2401,2403,2405],{"class":639,"line":672},[637,2392,650],{"class":643},[637,2394,724],{"class":653},[637,2396,657],{"class":643},[637,2398,660],{"class":643},[637,2400,686],{"class":643},[637,2402,2309],{"class":689},[637,2404,657],{"class":643},[637,2406,695],{"class":643},[637,2408,2409,2411,2413,2415,2417],{"class":639,"line":698},[637,2410,650],{"class":643},[637,2412,745],{"class":653},[637,2414,657],{"class":643},[637,2416,660],{"class":643},[637,2418,1399],{"class":643},[637,2420,2421,2423,2425,2427,2429,2431],{"class":639,"line":719},[637,2422,650],{"class":643},[637,2424,1248],{"class":653},[637,2426,657],{"class":643},[637,2428,660],{"class":643},[637,2430,2048],{"class":643},[637,2432,2433],{"class":786},"  \u002F\u002F ❌ No componentSlug\n",[637,2435,2436],{"class":639,"line":740},[637,2437,857],{"class":643},[567,2439,2440],{},[584,2441,2442],{},"Example (invalid - doesn't exist):",[628,2444,2446],{"className":630,"code":2445,"language":632,"meta":633,"style":633},"{\n  \"name\": \"header\",\n  \"label\": \"Header\",\n  \"type\": \"nestedComponent\",\n  \"required\": true,\n  \"options\": {\n    \"componentSlug\": \"nonexistent\"  \u002F\u002F ❌ Component not found\n  }\n}\n",[619,2447,2448,2452,2470,2488,2506,2518,2530,2550,2554],{"__ignoreMap":633},[637,2449,2450],{"class":639,"line":640},[637,2451,644],{"class":643},[637,2453,2454,2456,2458,2460,2462,2464,2466,2468],{"class":639,"line":647},[637,2455,650],{"class":643},[637,2457,679],{"class":653},[637,2459,657],{"class":643},[637,2461,660],{"class":643},[637,2463,686],{"class":643},[637,2465,2365],{"class":689},[637,2467,657],{"class":643},[637,2469,695],{"class":643},[637,2471,2472,2474,2476,2478,2480,2482,2484,2486],{"class":639,"line":666},[637,2473,650],{"class":643},[637,2475,703],{"class":653},[637,2477,657],{"class":643},[637,2479,660],{"class":643},[637,2481,686],{"class":643},[637,2483,2384],{"class":689},[637,2485,657],{"class":643},[637,2487,695],{"class":643},[637,2489,2490,2492,2494,2496,2498,2500,2502,2504],{"class":639,"line":672},[637,2491,650],{"class":643},[637,2493,724],{"class":653},[637,2495,657],{"class":643},[637,2497,660],{"class":643},[637,2499,686],{"class":643},[637,2501,2309],{"class":689},[637,2503,657],{"class":643},[637,2505,695],{"class":643},[637,2507,2508,2510,2512,2514,2516],{"class":639,"line":698},[637,2509,650],{"class":643},[637,2511,745],{"class":653},[637,2513,657],{"class":643},[637,2515,660],{"class":643},[637,2517,1399],{"class":643},[637,2519,2520,2522,2524,2526,2528],{"class":639,"line":719},[637,2521,650],{"class":643},[637,2523,1248],{"class":653},[637,2525,657],{"class":643},[637,2527,660],{"class":643},[637,2529,1255],{"class":643},[637,2531,2532,2534,2536,2538,2540,2542,2545,2547],{"class":639,"line":740},[637,2533,1260],{"class":643},[637,2535,2312],{"class":678},[637,2537,657],{"class":643},[637,2539,660],{"class":643},[637,2541,686],{"class":643},[637,2543,2544],{"class":689},"nonexistent",[637,2546,657],{"class":643},[637,2548,2549],{"class":786},"  \u002F\u002F ❌ Component not found\n",[637,2551,2552],{"class":639,"line":755},[637,2553,1292],{"class":643},[637,2555,2556],{"class":639,"line":761},[637,2557,857],{"class":643},[567,2559,2560],{},[584,2561,2562],{},"Example (invalid - circular):",[628,2564,2566],{"className":630,"code":2565,"language":632,"meta":633,"style":633},"{\n  \"name\": \"nested\",\n  \"label\": \"Nested\",\n  \"type\": \"nestedComponent\",\n  \"required\": true,\n  \"options\": {\n    \"componentSlug\": \"header\"  \u002F\u002F ❌ Component 'header' references back to this component\n  }\n}\n",[619,2567,2568,2572,2591,2610,2628,2640,2652,2671,2675],{"__ignoreMap":633},[637,2569,2570],{"class":639,"line":640},[637,2571,644],{"class":643},[637,2573,2574,2576,2578,2580,2582,2584,2587,2589],{"class":639,"line":647},[637,2575,650],{"class":643},[637,2577,679],{"class":653},[637,2579,657],{"class":643},[637,2581,660],{"class":643},[637,2583,686],{"class":643},[637,2585,2586],{"class":689},"nested",[637,2588,657],{"class":643},[637,2590,695],{"class":643},[637,2592,2593,2595,2597,2599,2601,2603,2606,2608],{"class":639,"line":666},[637,2594,650],{"class":643},[637,2596,703],{"class":653},[637,2598,657],{"class":643},[637,2600,660],{"class":643},[637,2602,686],{"class":643},[637,2604,2605],{"class":689},"Nested",[637,2607,657],{"class":643},[637,2609,695],{"class":643},[637,2611,2612,2614,2616,2618,2620,2622,2624,2626],{"class":639,"line":672},[637,2613,650],{"class":643},[637,2615,724],{"class":653},[637,2617,657],{"class":643},[637,2619,660],{"class":643},[637,2621,686],{"class":643},[637,2623,2309],{"class":689},[637,2625,657],{"class":643},[637,2627,695],{"class":643},[637,2629,2630,2632,2634,2636,2638],{"class":639,"line":698},[637,2631,650],{"class":643},[637,2633,745],{"class":653},[637,2635,657],{"class":643},[637,2637,660],{"class":643},[637,2639,1399],{"class":643},[637,2641,2642,2644,2646,2648,2650],{"class":639,"line":719},[637,2643,650],{"class":643},[637,2645,1248],{"class":653},[637,2647,657],{"class":643},[637,2649,660],{"class":643},[637,2651,1255],{"class":643},[637,2653,2654,2656,2658,2660,2662,2664,2666,2668],{"class":639,"line":740},[637,2655,1260],{"class":643},[637,2657,2312],{"class":678},[637,2659,657],{"class":643},[637,2661,660],{"class":643},[637,2663,686],{"class":643},[637,2665,2365],{"class":689},[637,2667,657],{"class":643},[637,2669,2670],{"class":786},"  \u002F\u002F ❌ Component 'header' references back to this component\n",[637,2672,2673],{"class":639,"line":755},[637,2674,1292],{"class":643},[637,2676,2677],{"class":639,"line":761},[637,2678,857],{"class":643},[567,2680,2681],{},[584,2682,862],{},[628,2684,2686],{"className":630,"code":2685,"language":632,"meta":633,"style":633},"{\n  \"name\": \"header\",\n  \"label\": \"Header\",\n  \"type\": \"nestedComponent\",\n  \"required\": true,\n  \"options\": {\n    \"componentSlug\": \"header\"  \u002F\u002F ✅ Valid existing component\n  }\n}\n",[619,2687,2688,2692,2710,2728,2746,2758,2770,2789,2793],{"__ignoreMap":633},[637,2689,2690],{"class":639,"line":640},[637,2691,644],{"class":643},[637,2693,2694,2696,2698,2700,2702,2704,2706,2708],{"class":639,"line":647},[637,2695,650],{"class":643},[637,2697,679],{"class":653},[637,2699,657],{"class":643},[637,2701,660],{"class":643},[637,2703,686],{"class":643},[637,2705,2365],{"class":689},[637,2707,657],{"class":643},[637,2709,695],{"class":643},[637,2711,2712,2714,2716,2718,2720,2722,2724,2726],{"class":639,"line":666},[637,2713,650],{"class":643},[637,2715,703],{"class":653},[637,2717,657],{"class":643},[637,2719,660],{"class":643},[637,2721,686],{"class":643},[637,2723,2384],{"class":689},[637,2725,657],{"class":643},[637,2727,695],{"class":643},[637,2729,2730,2732,2734,2736,2738,2740,2742,2744],{"class":639,"line":672},[637,2731,650],{"class":643},[637,2733,724],{"class":653},[637,2735,657],{"class":643},[637,2737,660],{"class":643},[637,2739,686],{"class":643},[637,2741,2309],{"class":689},[637,2743,657],{"class":643},[637,2745,695],{"class":643},[637,2747,2748,2750,2752,2754,2756],{"class":639,"line":698},[637,2749,650],{"class":643},[637,2751,745],{"class":653},[637,2753,657],{"class":643},[637,2755,660],{"class":643},[637,2757,1399],{"class":643},[637,2759,2760,2762,2764,2766,2768],{"class":639,"line":719},[637,2761,650],{"class":643},[637,2763,1248],{"class":653},[637,2765,657],{"class":643},[637,2767,660],{"class":643},[637,2769,1255],{"class":643},[637,2771,2772,2774,2776,2778,2780,2782,2784,2786],{"class":639,"line":740},[637,2773,1260],{"class":643},[637,2775,2312],{"class":678},[637,2777,657],{"class":643},[637,2779,660],{"class":643},[637,2781,686],{"class":643},[637,2783,2365],{"class":689},[637,2785,657],{"class":643},[637,2787,2788],{"class":786},"  \u002F\u002F ✅ Valid existing component\n",[637,2790,2791],{"class":639,"line":755},[637,2792,1292],{"class":643},[637,2794,2795],{"class":639,"line":761},[637,2796,857],{"class":643},[598,2798],{},[605,2800,2802],{"id":2801},"_7-component-picker-validation","7. Component Picker Validation",[567,2804,2805,2808,2809,2812],{},[619,2806,2807],{},"componentPicker"," fields can specify ",[619,2810,2811],{},"allowedComponents",". All components in the list must exist.",[567,2814,2815,617,2817],{},[584,2816,616],{},[619,2818,2330],{},[2820,2821,2822],"blockquote",{},[567,2823,2824,2827,2828,2830,2831,2833,2834,2837,2838,2840,2841,2844,2845,2848,2849,2851,2852,2854],{},[584,2825,2826],{},"Known gap: no self-reference check."," Unlike ",[619,2829,2309],{}," (see rule 8 below), the validator's ",[619,2832,2807],{}," branch (",[619,2835,2836],{},"packages\u002Fshared\u002Fsrc\u002Fschema\u002Fvalidator.ts",") only checks that each slug in ",[619,2839,2811],{}," exists — it never checks whether the list includes the component's own slug. A component ",[584,2842,2843],{},"can"," currently list itself in its own ",[619,2846,2847],{},"componentPicker.allowedComponents",", which the content editor would then let an author nest arbitrarily deep (component A containing an instance of itself, containing another instance of itself, and so on) — the same failure mode ",[619,2850,2336],{}," is meant to prevent for ",[619,2853,2309],{},".",[567,2856,2857],{},[584,2858,626],{},[628,2860,2862],{"className":630,"code":2861,"language":632,"meta":633,"style":633},"{\n  \"name\": \"sections\",\n  \"label\": \"Page Sections\",\n  \"type\": \"componentPicker\",\n  \"required\": false,\n  \"options\": {\n    \"allowedComponents\": [\"hero\", \"nonexistent\", \"features\"],\n    \"maxItems\": 10\n  }\n}\n",[619,2863,2864,2868,2887,2906,2924,2936,2948,2988,3002,3006],{"__ignoreMap":633},[637,2865,2866],{"class":639,"line":640},[637,2867,644],{"class":643},[637,2869,2870,2872,2874,2876,2878,2880,2883,2885],{"class":639,"line":647},[637,2871,650],{"class":643},[637,2873,679],{"class":653},[637,2875,657],{"class":643},[637,2877,660],{"class":643},[637,2879,686],{"class":643},[637,2881,2882],{"class":689},"sections",[637,2884,657],{"class":643},[637,2886,695],{"class":643},[637,2888,2889,2891,2893,2895,2897,2899,2902,2904],{"class":639,"line":666},[637,2890,650],{"class":643},[637,2892,703],{"class":653},[637,2894,657],{"class":643},[637,2896,660],{"class":643},[637,2898,686],{"class":643},[637,2900,2901],{"class":689},"Page Sections",[637,2903,657],{"class":643},[637,2905,695],{"class":643},[637,2907,2908,2910,2912,2914,2916,2918,2920,2922],{"class":639,"line":672},[637,2909,650],{"class":643},[637,2911,724],{"class":653},[637,2913,657],{"class":643},[637,2915,660],{"class":643},[637,2917,686],{"class":643},[637,2919,2807],{"class":689},[637,2921,657],{"class":643},[637,2923,695],{"class":643},[637,2925,2926,2928,2930,2932,2934],{"class":639,"line":698},[637,2927,650],{"class":643},[637,2929,745],{"class":653},[637,2931,657],{"class":643},[637,2933,660],{"class":643},[637,2935,1241],{"class":643},[637,2937,2938,2940,2942,2944,2946],{"class":639,"line":719},[637,2939,650],{"class":643},[637,2941,1248],{"class":653},[637,2943,657],{"class":643},[637,2945,660],{"class":643},[637,2947,1255],{"class":643},[637,2949,2950,2952,2954,2956,2958,2961,2963,2966,2968,2970,2972,2974,2976,2978,2980,2983,2985],{"class":639,"line":740},[637,2951,1260],{"class":643},[637,2953,2811],{"class":678},[637,2955,657],{"class":643},[637,2957,660],{"class":643},[637,2959,2960],{"class":643}," [",[637,2962,657],{"class":643},[637,2964,2965],{"class":689},"hero",[637,2967,657],{"class":643},[637,2969,783],{"class":643},[637,2971,686],{"class":643},[637,2973,2544],{"class":689},[637,2975,657],{"class":643},[637,2977,783],{"class":643},[637,2979,686],{"class":643},[637,2981,2982],{"class":689},"features",[637,2984,657],{"class":643},[637,2986,2987],{"class":643},"],\n",[637,2989,2990,2992,2995,2997,2999],{"class":639,"line":755},[637,2991,1260],{"class":643},[637,2993,2994],{"class":678},"maxItems",[637,2996,657],{"class":643},[637,2998,660],{"class":643},[637,3000,3001],{"class":1270}," 10\n",[637,3003,3004],{"class":639,"line":761},[637,3005,1292],{"class":643},[637,3007,3008],{"class":639,"line":766},[637,3009,857],{"class":643},[567,3011,3012,3014],{},[584,3013,862],{}," Use only existing components:",[628,3016,3018],{"className":630,"code":3017,"language":632,"meta":633,"style":633},"{\n  \"name\": \"sections\",\n  \"label\": \"Page Sections\",\n  \"type\": \"componentPicker\",\n  \"required\": false,\n  \"options\": {\n    \"allowedComponents\": [\"hero\", \"features\", \"testimonials\"],  \u002F\u002F ✅ All exist\n    \"maxItems\": 10\n  }\n}\n",[619,3019,3020,3024,3042,3060,3078,3090,3102,3143,3155,3159],{"__ignoreMap":633},[637,3021,3022],{"class":639,"line":640},[637,3023,644],{"class":643},[637,3025,3026,3028,3030,3032,3034,3036,3038,3040],{"class":639,"line":647},[637,3027,650],{"class":643},[637,3029,679],{"class":653},[637,3031,657],{"class":643},[637,3033,660],{"class":643},[637,3035,686],{"class":643},[637,3037,2882],{"class":689},[637,3039,657],{"class":643},[637,3041,695],{"class":643},[637,3043,3044,3046,3048,3050,3052,3054,3056,3058],{"class":639,"line":666},[637,3045,650],{"class":643},[637,3047,703],{"class":653},[637,3049,657],{"class":643},[637,3051,660],{"class":643},[637,3053,686],{"class":643},[637,3055,2901],{"class":689},[637,3057,657],{"class":643},[637,3059,695],{"class":643},[637,3061,3062,3064,3066,3068,3070,3072,3074,3076],{"class":639,"line":672},[637,3063,650],{"class":643},[637,3065,724],{"class":653},[637,3067,657],{"class":643},[637,3069,660],{"class":643},[637,3071,686],{"class":643},[637,3073,2807],{"class":689},[637,3075,657],{"class":643},[637,3077,695],{"class":643},[637,3079,3080,3082,3084,3086,3088],{"class":639,"line":698},[637,3081,650],{"class":643},[637,3083,745],{"class":653},[637,3085,657],{"class":643},[637,3087,660],{"class":643},[637,3089,1241],{"class":643},[637,3091,3092,3094,3096,3098,3100],{"class":639,"line":719},[637,3093,650],{"class":643},[637,3095,1248],{"class":653},[637,3097,657],{"class":643},[637,3099,660],{"class":643},[637,3101,1255],{"class":643},[637,3103,3104,3106,3108,3110,3112,3114,3116,3118,3120,3122,3124,3126,3128,3130,3132,3135,3137,3140],{"class":639,"line":740},[637,3105,1260],{"class":643},[637,3107,2811],{"class":678},[637,3109,657],{"class":643},[637,3111,660],{"class":643},[637,3113,2960],{"class":643},[637,3115,657],{"class":643},[637,3117,2965],{"class":689},[637,3119,657],{"class":643},[637,3121,783],{"class":643},[637,3123,686],{"class":643},[637,3125,2982],{"class":689},[637,3127,657],{"class":643},[637,3129,783],{"class":643},[637,3131,686],{"class":643},[637,3133,3134],{"class":689},"testimonials",[637,3136,657],{"class":643},[637,3138,3139],{"class":643},"],",[637,3141,3142],{"class":786},"  \u002F\u002F ✅ All exist\n",[637,3144,3145,3147,3149,3151,3153],{"class":639,"line":755},[637,3146,1260],{"class":643},[637,3148,2994],{"class":678},[637,3150,657],{"class":643},[637,3152,660],{"class":643},[637,3154,3001],{"class":1270},[637,3156,3157],{"class":639,"line":761},[637,3158,1292],{"class":643},[637,3160,3161],{"class":639,"line":766},[637,3162,857],{"class":643},[598,3164],{},[605,3166,3168],{"id":3167},"_8-circular-reference-detection","8. Circular Reference Detection",[567,3170,3171,617,3177,3179],{},[584,3172,3173,3174,3176],{},"This check only applies to ",[619,3175,2309],{}," fields.",[619,3178,2807],{}," fields are not covered — see the \"Known gap\" note in rule 7 above.",[567,3181,3182,617,3184],{},[584,3183,616],{},[619,3185,2336],{},[567,3187,3188],{},[584,3189,3190,3191,3193],{},"Direct reference (invalid, via ",[619,3192,2309],{},"):",[628,3195,3199],{"className":3196,"code":3198,"language":733},[3197],"language-text","Component A has nestedComponent field pointing to Component A\n❌ Circular reference detected\n",[619,3200,3198],{"__ignoreMap":633},[567,3202,3203],{},[584,3204,3205,3206,3193],{},"Indirect reference chain (invalid, via ",[619,3207,2309],{},[628,3209,3212],{"className":3210,"code":3211,"language":733},[3197],"Component A -> nestedComponent -> Component B\nComponent B -> nestedComponent -> Component A\n❌ Circular reference detected (A -> B -> A)\n",[619,3213,3211],{"__ignoreMap":633},[567,3215,3216],{},[584,3217,3218],{},"Not actually blocked (documentation gap, not a guarantee):",[628,3220,3223],{"className":3221,"code":3222,"language":733},[3197],"Component A -> componentPicker allows [A]\n⚠️ Currently ACCEPTED by validation — componentPicker never checks for self-reference\n",[619,3224,3222],{"__ignoreMap":633},[567,3226,3227],{},[584,3228,3229],{},"Valid structure:",[628,3231,3234],{"className":3232,"code":3233,"language":733},[3197],"Component A -> nestedComponent -> Component B\nComponent B -> nestedComponent -> Component C\nComponent C -> has no component references\n✅ Valid hierarchy (no circular reference)\n",[619,3235,3233],{"__ignoreMap":633},[598,3237],{},[605,3239,3241],{"id":3240},"_9-nesting-depth-limit","9. Nesting Depth Limit",[567,3243,3244,3245,3247,3248,3250,3251,3254,3255,3258,3259,3261,3262,1896,3265,3268,3269,3272,3273,3276,3277,3280,3281,3284,3285,3288,3289,3291],{},"The validator (",[619,3246,2836],{},") defines a 1-level nesting cap for ",[619,3249,2309],{}," fields, but ",[584,3252,3253],{},"it is currently unreachable from every production route",". The check only fires when the caller passes an incremented ",[619,3256,3257],{},"nestingLevel"," into ",[619,3260,1944],{},"; ",[619,3263,3264],{},"POST",[619,3266,3267],{},"PUT"," on ",[619,3270,3271],{},"\u002Fadmin\u002Fpage-types",", ",[619,3274,3275],{},"\u002Fadmin\u002Fcomponents",", and ",[619,3278,3279],{},"\u002Fadmin\u002Fcollection-types"," all call it with ",[619,3282,3283],{},"nestingLevel: 0"," (or omit it, which also defaults to ",[619,3286,3287],{},"0",") and never increment it when recursing into a nested component's own schema. In practice, ",[619,3290,2309],{}," chains deeper than 1 level are accepted, not rejected — only genuine circular references (rule 8 above) are actually caught.",[567,3293,3294,617,3296,3299],{},[584,3295,616],{},[619,3297,3298],{},"NESTING_LIMIT_EXCEEDED"," (defined, but not reachable today — see above)",[567,3301,3302],{},[584,3303,3304],{},"Illustrative (2 levels deep) — currently ACCEPTED, not rejected:",[628,3306,3309],{"className":3307,"code":3308,"language":733},[3197],"Component A:\n  └─ nestedComponent -> Component B:\n      └─ nestedComponent -> Component C  ⚠️ Not currently rejected, despite being \"2 levels deep\"\n",[619,3310,3308],{"__ignoreMap":633},[567,3312,3313],{},[584,3314,3315],{},"Also valid (1 level deep):",[628,3317,3320],{"className":3318,"code":3319,"language":733},[3197],"Component A:\n  └─ nestedComponent -> Component B:\n      └─ [no nested components]  ✅ Valid (1 level)\n",[619,3321,3319],{"__ignoreMap":633},[567,3323,3324],{},[584,3325,3326],{},"How to structure composable components:",[567,3328,3329,3330,3332],{},"Instead of deep nesting, use ",[619,3331,2807],{}," to compose components:",[628,3334,3336],{"className":630,"code":3335,"language":632,"meta":633,"style":633},"\u002F\u002F Component: PageLayout\n{\n  \"schema\": [\n    {\n      \"name\": \"header\",\n      \"type\": \"nestedComponent\",\n      \"options\": { \"componentSlug\": \"header\" }\n    },\n    {\n      \"name\": \"sections\",\n      \"type\": \"componentPicker\",\n      \"options\": {\n        \"allowedComponents\": [\"hero\", \"features\", \"testimonials\"]\n      }\n    }\n  ]\n}\n\n\u002F\u002F Component: Hero\n{\n  \"schema\": [\n    {\n      \"name\": \"title\",\n      \"type\": \"text\"\n    },\n    {\n      \"name\": \"buttons\",\n      \"type\": \"componentPicker\",\n      \"options\": {\n        \"allowedComponents\": [\"button\"]  \u002F\u002F ✅ Max 1 level\n      }\n    }\n  ]\n}\n",[619,3337,3338,3343,3347,3359,3363,3381,3399,3429,3433,3437,3455,3473,3485,3523,3528,3532,3536,3541,3548,3554,3559,3572,3577,3596,3614,3619,3624,3644,3663,3676,3702,3707,3712,3717],{"__ignoreMap":633},[637,3339,3340],{"class":639,"line":640},[637,3341,3342],{"class":786},"\u002F\u002F Component: PageLayout\n",[637,3344,3345],{"class":639,"line":647},[637,3346,644],{"class":643},[637,3348,3349,3351,3353,3355,3357],{"class":639,"line":666},[637,3350,650],{"class":643},[637,3352,654],{"class":653},[637,3354,657],{"class":643},[637,3356,660],{"class":643},[637,3358,663],{"class":643},[637,3360,3361],{"class":639,"line":672},[637,3362,669],{"class":643},[637,3364,3365,3367,3369,3371,3373,3375,3377,3379],{"class":639,"line":698},[637,3366,675],{"class":643},[637,3368,679],{"class":678},[637,3370,657],{"class":643},[637,3372,660],{"class":643},[637,3374,686],{"class":643},[637,3376,2365],{"class":689},[637,3378,657],{"class":643},[637,3380,695],{"class":643},[637,3382,3383,3385,3387,3389,3391,3393,3395,3397],{"class":639,"line":719},[637,3384,675],{"class":643},[637,3386,724],{"class":678},[637,3388,657],{"class":643},[637,3390,660],{"class":643},[637,3392,686],{"class":643},[637,3394,2309],{"class":689},[637,3396,657],{"class":643},[637,3398,695],{"class":643},[637,3400,3401,3403,3405,3407,3409,3412,3414,3416,3418,3420,3422,3424,3426],{"class":639,"line":740},[637,3402,675],{"class":643},[637,3404,1248],{"class":678},[637,3406,657],{"class":643},[637,3408,660],{"class":643},[637,3410,3411],{"class":643}," {",[637,3413,686],{"class":643},[637,3415,2312],{"class":1270},[637,3417,657],{"class":643},[637,3419,660],{"class":643},[637,3421,686],{"class":643},[637,3423,2365],{"class":689},[637,3425,657],{"class":643},[637,3427,3428],{"class":643}," }\n",[637,3430,3431],{"class":639,"line":755},[637,3432,758],{"class":643},[637,3434,3435],{"class":639,"line":761},[637,3436,669],{"class":643},[637,3438,3439,3441,3443,3445,3447,3449,3451,3453],{"class":639,"line":766},[637,3440,675],{"class":643},[637,3442,679],{"class":678},[637,3444,657],{"class":643},[637,3446,660],{"class":643},[637,3448,686],{"class":643},[637,3450,2882],{"class":689},[637,3452,657],{"class":643},[637,3454,695],{"class":643},[637,3456,3457,3459,3461,3463,3465,3467,3469,3471],{"class":639,"line":790},[637,3458,675],{"class":643},[637,3460,724],{"class":678},[637,3462,657],{"class":643},[637,3464,660],{"class":643},[637,3466,686],{"class":643},[637,3468,2807],{"class":689},[637,3470,657],{"class":643},[637,3472,695],{"class":643},[637,3474,3475,3477,3479,3481,3483],{"class":639,"line":810},[637,3476,675],{"class":643},[637,3478,1248],{"class":678},[637,3480,657],{"class":643},[637,3482,660],{"class":643},[637,3484,1255],{"class":643},[637,3486,3487,3490,3492,3494,3496,3498,3500,3502,3504,3506,3508,3510,3512,3514,3516,3518,3520],{"class":639,"line":829},[637,3488,3489],{"class":643},"        \"",[637,3491,2811],{"class":1270},[637,3493,657],{"class":643},[637,3495,660],{"class":643},[637,3497,2960],{"class":643},[637,3499,657],{"class":643},[637,3501,2965],{"class":689},[637,3503,657],{"class":643},[637,3505,783],{"class":643},[637,3507,686],{"class":643},[637,3509,2982],{"class":689},[637,3511,657],{"class":643},[637,3513,783],{"class":643},[637,3515,686],{"class":643},[637,3517,3134],{"class":689},[637,3519,657],{"class":643},[637,3521,3522],{"class":643},"]\n",[637,3524,3525],{"class":639,"line":842},[637,3526,3527],{"class":643},"      }\n",[637,3529,3530],{"class":639,"line":848},[637,3531,845],{"class":643},[637,3533,3534],{"class":639,"line":854},[637,3535,851],{"class":643},[637,3537,3539],{"class":639,"line":3538},17,[637,3540,857],{"class":643},[637,3542,3544],{"class":639,"line":3543},18,[637,3545,3547],{"emptyLinePlaceholder":3546},true,"\n",[637,3549,3551],{"class":639,"line":3550},19,[637,3552,3553],{"class":786},"\u002F\u002F Component: Hero\n",[637,3555,3557],{"class":639,"line":3556},20,[637,3558,644],{"class":643},[637,3560,3562,3564,3566,3568,3570],{"class":639,"line":3561},21,[637,3563,650],{"class":643},[637,3565,654],{"class":653},[637,3567,657],{"class":643},[637,3569,660],{"class":643},[637,3571,663],{"class":643},[637,3573,3575],{"class":639,"line":3574},22,[637,3576,669],{"class":643},[637,3578,3580,3582,3584,3586,3588,3590,3592,3594],{"class":639,"line":3579},23,[637,3581,675],{"class":643},[637,3583,679],{"class":678},[637,3585,657],{"class":643},[637,3587,660],{"class":643},[637,3589,686],{"class":643},[637,3591,690],{"class":689},[637,3593,657],{"class":643},[637,3595,695],{"class":643},[637,3597,3599,3601,3603,3605,3607,3609,3611],{"class":639,"line":3598},24,[637,3600,675],{"class":643},[637,3602,724],{"class":678},[637,3604,657],{"class":643},[637,3606,660],{"class":643},[637,3608,686],{"class":643},[637,3610,733],{"class":689},[637,3612,3613],{"class":643},"\"\n",[637,3615,3617],{"class":639,"line":3616},25,[637,3618,758],{"class":643},[637,3620,3622],{"class":639,"line":3621},26,[637,3623,669],{"class":643},[637,3625,3627,3629,3631,3633,3635,3637,3640,3642],{"class":639,"line":3626},27,[637,3628,675],{"class":643},[637,3630,679],{"class":678},[637,3632,657],{"class":643},[637,3634,660],{"class":643},[637,3636,686],{"class":643},[637,3638,3639],{"class":689},"buttons",[637,3641,657],{"class":643},[637,3643,695],{"class":643},[637,3645,3647,3649,3651,3653,3655,3657,3659,3661],{"class":639,"line":3646},28,[637,3648,675],{"class":643},[637,3650,724],{"class":678},[637,3652,657],{"class":643},[637,3654,660],{"class":643},[637,3656,686],{"class":643},[637,3658,2807],{"class":689},[637,3660,657],{"class":643},[637,3662,695],{"class":643},[637,3664,3666,3668,3670,3672,3674],{"class":639,"line":3665},29,[637,3667,675],{"class":643},[637,3669,1248],{"class":678},[637,3671,657],{"class":643},[637,3673,660],{"class":643},[637,3675,1255],{"class":643},[637,3677,3679,3681,3683,3685,3687,3689,3691,3694,3696,3699],{"class":639,"line":3678},30,[637,3680,3489],{"class":643},[637,3682,2811],{"class":1270},[637,3684,657],{"class":643},[637,3686,660],{"class":643},[637,3688,2960],{"class":643},[637,3690,657],{"class":643},[637,3692,3693],{"class":689},"button",[637,3695,657],{"class":643},[637,3697,3698],{"class":643},"]",[637,3700,3701],{"class":786},"  \u002F\u002F ✅ Max 1 level\n",[637,3703,3705],{"class":639,"line":3704},31,[637,3706,3527],{"class":643},[637,3708,3710],{"class":639,"line":3709},32,[637,3711,845],{"class":643},[637,3713,3715],{"class":639,"line":3714},33,[637,3716,851],{"class":643},[637,3718,3720],{"class":639,"line":3719},34,[637,3721,857],{"class":643},[598,3723],{},[571,3725,3727],{"id":3726},"breaking-change-detection","Breaking Change Detection",[567,3729,3730],{},"When updating a schema that is actively in use (pages\u002Fcontent exist), the API warns about breaking changes.",[605,3732,3734],{"id":3733},"detected-breaking-changes","Detected Breaking Changes",[3736,3737,3739],"h4",{"id":3738},"field_removed","FIELD_REMOVED",[567,3741,3742],{},"A field that existed in the old schema is missing in the new schema.",[567,3744,3745],{},[584,3746,3747],{},"Example:",[628,3749,3751],{"className":630,"code":3750,"language":632,"meta":633,"style":633},"\u002F\u002F Old schema:\n[\n  { \"name\": \"title\", \"type\": \"text\" },\n  { \"name\": \"author\", \"type\": \"reference\" }\n]\n\n\u002F\u002F New schema:\n[\n  { \"name\": \"title\", \"type\": \"text\" }\n  \u002F\u002F author field removed ❌\n]\n",[619,3752,3753,3758,3763,3801,3837,3841,3845,3850,3854,3890,3895],{"__ignoreMap":633},[637,3754,3755],{"class":639,"line":640},[637,3756,3757],{"class":786},"\u002F\u002F Old schema:\n",[637,3759,3760],{"class":639,"line":647},[637,3761,3762],{"class":643},"[\n",[637,3764,3765,3768,3770,3772,3774,3776,3778,3780,3782,3784,3786,3788,3790,3792,3794,3796,3798],{"class":639,"line":666},[637,3766,3767],{"class":643},"  {",[637,3769,686],{"class":643},[637,3771,679],{"class":653},[637,3773,657],{"class":643},[637,3775,660],{"class":643},[637,3777,686],{"class":643},[637,3779,690],{"class":689},[637,3781,657],{"class":643},[637,3783,783],{"class":643},[637,3785,686],{"class":643},[637,3787,724],{"class":653},[637,3789,657],{"class":643},[637,3791,660],{"class":643},[637,3793,686],{"class":643},[637,3795,733],{"class":689},[637,3797,657],{"class":643},[637,3799,3800],{"class":643}," },\n",[637,3802,3803,3805,3807,3809,3811,3813,3815,3817,3819,3821,3823,3825,3827,3829,3831,3833,3835],{"class":639,"line":672},[637,3804,3767],{"class":643},[637,3806,686],{"class":643},[637,3808,679],{"class":653},[637,3810,657],{"class":643},[637,3812,660],{"class":643},[637,3814,686],{"class":643},[637,3816,1982],{"class":689},[637,3818,657],{"class":643},[637,3820,783],{"class":643},[637,3822,686],{"class":643},[637,3824,724],{"class":653},[637,3826,657],{"class":643},[637,3828,660],{"class":643},[637,3830,686],{"class":643},[637,3832,1868],{"class":689},[637,3834,657],{"class":643},[637,3836,3428],{"class":643},[637,3838,3839],{"class":639,"line":698},[637,3840,3522],{"class":643},[637,3842,3843],{"class":639,"line":719},[637,3844,3547],{"emptyLinePlaceholder":3546},[637,3846,3847],{"class":639,"line":740},[637,3848,3849],{"class":786},"\u002F\u002F New schema:\n",[637,3851,3852],{"class":639,"line":755},[637,3853,3762],{"class":643},[637,3855,3856,3858,3860,3862,3864,3866,3868,3870,3872,3874,3876,3878,3880,3882,3884,3886,3888],{"class":639,"line":761},[637,3857,3767],{"class":643},[637,3859,686],{"class":643},[637,3861,679],{"class":653},[637,3863,657],{"class":643},[637,3865,660],{"class":643},[637,3867,686],{"class":643},[637,3869,690],{"class":689},[637,3871,657],{"class":643},[637,3873,783],{"class":643},[637,3875,686],{"class":643},[637,3877,724],{"class":653},[637,3879,657],{"class":643},[637,3881,660],{"class":643},[637,3883,686],{"class":643},[637,3885,733],{"class":689},[637,3887,657],{"class":643},[637,3889,3428],{"class":643},[637,3891,3892],{"class":639,"line":766},[637,3893,3894],{"class":786},"  \u002F\u002F author field removed ❌\n",[637,3896,3897],{"class":639,"line":790},[637,3898,3522],{"class":643},[567,3900,3901,617,3904],{},[584,3902,3903],{},"Warning Code:",[619,3905,3739],{},[567,3907,3908],{},[584,3909,3910],{},"Impact:",[1917,3912,3913,3919,3922],{},[581,3914,3915,3916,3918],{},"Existing pages lose the ",[619,3917,1982],{}," field",[581,3920,3921],{},"Data is not deleted but becomes inaccessible",[581,3923,3924],{},"Older page versions still have the data",[598,3926],{},[3736,3928,3930],{"id":3929},"field_type_changed","FIELD_TYPE_CHANGED",[567,3932,3933],{},"A field's type has changed between old and new schema.",[567,3935,3936],{},[584,3937,3747],{},[628,3939,3941],{"className":630,"code":3940,"language":632,"meta":633,"style":633},"\u002F\u002F Old:\n{ \"name\": \"rating\", \"type\": \"number\" }\n\n\u002F\u002F New:\n{ \"name\": \"rating\", \"type\": \"text\" }  \u002F\u002F ❌ Type changed\n",[619,3942,3943,3948,3985,3989,3994],{"__ignoreMap":633},[637,3944,3945],{"class":639,"line":640},[637,3946,3947],{"class":786},"\u002F\u002F Old:\n",[637,3949,3950,3953,3955,3957,3959,3961,3963,3965,3967,3969,3971,3973,3975,3977,3979,3981,3983],{"class":639,"line":647},[637,3951,3952],{"class":643},"{",[637,3954,686],{"class":643},[637,3956,679],{"class":653},[637,3958,657],{"class":643},[637,3960,660],{"class":643},[637,3962,686],{"class":643},[637,3964,1094],{"class":689},[637,3966,657],{"class":643},[637,3968,783],{"class":643},[637,3970,686],{"class":643},[637,3972,724],{"class":653},[637,3974,657],{"class":643},[637,3976,660],{"class":643},[637,3978,686],{"class":643},[637,3980,1221],{"class":689},[637,3982,657],{"class":643},[637,3984,3428],{"class":643},[637,3986,3987],{"class":639,"line":666},[637,3988,3547],{"emptyLinePlaceholder":3546},[637,3990,3991],{"class":639,"line":672},[637,3992,3993],{"class":786},"\u002F\u002F New:\n",[637,3995,3996,3998,4000,4002,4004,4006,4008,4010,4012,4014,4016,4018,4020,4022,4024,4026,4028,4031],{"class":639,"line":698},[637,3997,3952],{"class":643},[637,3999,686],{"class":643},[637,4001,679],{"class":653},[637,4003,657],{"class":643},[637,4005,660],{"class":643},[637,4007,686],{"class":643},[637,4009,1094],{"class":689},[637,4011,657],{"class":643},[637,4013,783],{"class":643},[637,4015,686],{"class":643},[637,4017,724],{"class":653},[637,4019,657],{"class":643},[637,4021,660],{"class":643},[637,4023,686],{"class":643},[637,4025,733],{"class":689},[637,4027,657],{"class":643},[637,4029,4030],{"class":643}," }",[637,4032,4033],{"class":786},"  \u002F\u002F ❌ Type changed\n",[567,4035,4036,617,4038],{},[584,4037,3903],{},[619,4039,3930],{},[567,4041,4042],{},[584,4043,3910],{},[1917,4045,4046,4049,4052],{},[581,4047,4048],{},"Existing numeric values may be invalid as text",[581,4050,4051],{},"Type coercion may lose precision",[581,4053,4054],{},"Content validation may fail",[598,4056],{},[3736,4058,4060],{"id":4059},"field_now_required","FIELD_NOW_REQUIRED",[567,4062,4063],{},"A field that was optional has become required.",[567,4065,4066],{},[584,4067,3747],{},[628,4069,4071],{"className":630,"code":4070,"language":632,"meta":633,"style":633},"\u002F\u002F Old:\n{ \"name\": \"description\", \"type\": \"text\", \"required\": false }\n\n\u002F\u002F New:\n{ \"name\": \"description\", \"type\": \"text\", \"required\": true }  \u002F\u002F ❌ Now required\n",[619,4072,4073,4077,4127,4131,4135],{"__ignoreMap":633},[637,4074,4075],{"class":639,"line":640},[637,4076,3947],{"class":786},[637,4078,4079,4081,4083,4085,4087,4089,4091,4094,4096,4098,4100,4102,4104,4106,4108,4110,4112,4114,4116,4118,4120,4122,4125],{"class":639,"line":647},[637,4080,3952],{"class":643},[637,4082,686],{"class":643},[637,4084,679],{"class":653},[637,4086,657],{"class":643},[637,4088,660],{"class":643},[637,4090,686],{"class":643},[637,4092,4093],{"class":689},"description",[637,4095,657],{"class":643},[637,4097,783],{"class":643},[637,4099,686],{"class":643},[637,4101,724],{"class":653},[637,4103,657],{"class":643},[637,4105,660],{"class":643},[637,4107,686],{"class":643},[637,4109,733],{"class":689},[637,4111,657],{"class":643},[637,4113,783],{"class":643},[637,4115,686],{"class":643},[637,4117,745],{"class":653},[637,4119,657],{"class":643},[637,4121,660],{"class":643},[637,4123,4124],{"class":643}," false",[637,4126,3428],{"class":643},[637,4128,4129],{"class":639,"line":666},[637,4130,3547],{"emptyLinePlaceholder":3546},[637,4132,4133],{"class":639,"line":672},[637,4134,3993],{"class":786},[637,4136,4137,4139,4141,4143,4145,4147,4149,4151,4153,4155,4157,4159,4161,4163,4165,4167,4169,4171,4173,4175,4177,4179,4182,4184],{"class":639,"line":698},[637,4138,3952],{"class":643},[637,4140,686],{"class":643},[637,4142,679],{"class":653},[637,4144,657],{"class":643},[637,4146,660],{"class":643},[637,4148,686],{"class":643},[637,4150,4093],{"class":689},[637,4152,657],{"class":643},[637,4154,783],{"class":643},[637,4156,686],{"class":643},[637,4158,724],{"class":653},[637,4160,657],{"class":643},[637,4162,660],{"class":643},[637,4164,686],{"class":643},[637,4166,733],{"class":689},[637,4168,657],{"class":643},[637,4170,783],{"class":643},[637,4172,686],{"class":643},[637,4174,745],{"class":653},[637,4176,657],{"class":643},[637,4178,660],{"class":643},[637,4180,4181],{"class":643}," true",[637,4183,4030],{"class":643},[637,4185,4186],{"class":786},"  \u002F\u002F ❌ Now required\n",[567,4188,4189,617,4191],{},[584,4190,3903],{},[619,4192,4060],{},[567,4194,4195],{},[584,4196,3910],{},[1917,4198,4199,4202,4205],{},[581,4200,4201],{},"Existing pages without this field are now invalid",[581,4203,4204],{},"Editors will see validation errors",[581,4206,4207],{},"Pages must be updated to provide values",[598,4209],{},[605,4211,4213],{"id":4212},"non-breaking-changes","Non-Breaking Changes",[567,4215,4216],{},"These changes do NOT trigger warnings:",[1917,4218,4219,4225,4231,4236,4241,4272,4278,4284],{},[581,4220,4221,4224],{},[584,4222,4223],{},"Adding optional field"," - Existing content unaffected",[581,4226,4227,4230],{},[584,4228,4229],{},"Changing label"," - No impact on data",[581,4232,4233,4230],{},[584,4234,4235],{},"Changing placeholder",[581,4237,4238,4230],{},[584,4239,4240],{},"Changing helpText",[581,4242,4243,4246,4247,1881,4250,4252,4253,4255,4256,3276,4258,4260,4261,4263,4264,4267,4268,4271],{},[584,4244,4245],{},"Changing options"," - Always non-breaking today, full stop. ",[619,4248,4249],{},"detectBreakingChanges()",[619,4251,2836],{},") never inspects the ",[619,4254,1248],{}," object at all — it only compares field presence, ",[619,4257,724],{},[619,4259,745],{},". This means tightening a constraint (e.g. lowering ",[619,4262,1434],{}," below existing content's length, or removing a ",[619,4265,4266],{},"choices"," value that existing content uses) produces ",[584,4269,4270],{},"no warning whatsoever",", even though it can make existing content fail content-level validation later.",[581,4273,4274,4277],{},[584,4275,4276],{},"Making required field optional"," - Existing content remains valid",[581,4279,4280,4283],{},[584,4281,4282],{},"Reordering fields"," - Data structure unchanged",[581,4285,4286,4289],{},[584,4287,4288],{},"Changing defaultValue"," - Only affects new content",[598,4291],{},[571,4293,4295],{"id":4294},"validation-error-responses","Validation Error Responses",[605,4297,4299],{"id":4298},"error-response-format","Error Response Format",[628,4301,4303],{"className":630,"code":4302,"language":632,"meta":633,"style":633},"{\n  \"error\": {\n    \"code\": \"INVALID_SCHEMA\",\n    \"message\": \"Schema validation failed\",\n    \"details\": {\n      \"errors\": [\n        {\n          \"field\": \"fieldName\",\n          \"code\": \"ERROR_CODE\",\n          \"message\": \"Specific error message\"\n        }\n      ]\n    }\n  }\n}\n",[619,4304,4305,4309,4322,4341,4361,4374,4387,4392,4414,4433,4450,4455,4460,4464,4468],{"__ignoreMap":633},[637,4306,4307],{"class":639,"line":640},[637,4308,644],{"class":643},[637,4310,4311,4313,4316,4318,4320],{"class":639,"line":647},[637,4312,650],{"class":643},[637,4314,4315],{"class":653},"error",[637,4317,657],{"class":643},[637,4319,660],{"class":643},[637,4321,1255],{"class":643},[637,4323,4324,4326,4328,4330,4332,4334,4337,4339],{"class":639,"line":666},[637,4325,1260],{"class":643},[637,4327,619],{"class":678},[637,4329,657],{"class":643},[637,4331,660],{"class":643},[637,4333,686],{"class":643},[637,4335,4336],{"class":689},"INVALID_SCHEMA",[637,4338,657],{"class":643},[637,4340,695],{"class":643},[637,4342,4343,4345,4348,4350,4352,4354,4357,4359],{"class":639,"line":672},[637,4344,1260],{"class":643},[637,4346,4347],{"class":678},"message",[637,4349,657],{"class":643},[637,4351,660],{"class":643},[637,4353,686],{"class":643},[637,4355,4356],{"class":689},"Schema validation failed",[637,4358,657],{"class":643},[637,4360,695],{"class":643},[637,4362,4363,4365,4368,4370,4372],{"class":639,"line":698},[637,4364,1260],{"class":643},[637,4366,4367],{"class":678},"details",[637,4369,657],{"class":643},[637,4371,660],{"class":643},[637,4373,1255],{"class":643},[637,4375,4376,4378,4381,4383,4385],{"class":639,"line":719},[637,4377,675],{"class":643},[637,4379,4380],{"class":1270},"errors",[637,4382,657],{"class":643},[637,4384,660],{"class":643},[637,4386,663],{"class":643},[637,4388,4389],{"class":639,"line":740},[637,4390,4391],{"class":643},"        {\n",[637,4393,4394,4397,4401,4403,4405,4407,4410,4412],{"class":639,"line":755},[637,4395,4396],{"class":643},"          \"",[637,4398,4400],{"class":4399},"swJcz","field",[637,4402,657],{"class":643},[637,4404,660],{"class":643},[637,4406,686],{"class":643},[637,4408,4409],{"class":689},"fieldName",[637,4411,657],{"class":643},[637,4413,695],{"class":643},[637,4415,4416,4418,4420,4422,4424,4426,4429,4431],{"class":639,"line":761},[637,4417,4396],{"class":643},[637,4419,619],{"class":4399},[637,4421,657],{"class":643},[637,4423,660],{"class":643},[637,4425,686],{"class":643},[637,4427,4428],{"class":689},"ERROR_CODE",[637,4430,657],{"class":643},[637,4432,695],{"class":643},[637,4434,4435,4437,4439,4441,4443,4445,4448],{"class":639,"line":766},[637,4436,4396],{"class":643},[637,4438,4347],{"class":4399},[637,4440,657],{"class":643},[637,4442,660],{"class":643},[637,4444,686],{"class":643},[637,4446,4447],{"class":689},"Specific error message",[637,4449,3613],{"class":643},[637,4451,4452],{"class":639,"line":790},[637,4453,4454],{"class":643},"        }\n",[637,4456,4457],{"class":639,"line":810},[637,4458,4459],{"class":643},"      ]\n",[637,4461,4462],{"class":639,"line":829},[637,4463,845],{"class":643},[637,4465,4466],{"class":639,"line":842},[637,4467,1292],{"class":643},[637,4469,4470],{"class":639,"line":848},[637,4471,857],{"class":643},[605,4473,4475],{"id":4474},"example-multiple-validation-errors","Example: Multiple Validation Errors",[628,4477,4479],{"className":630,"code":4478,"language":632,"meta":633,"style":633},"{\n  \"error\": {\n    \"code\": \"INVALID_SCHEMA\",\n    \"message\": \"Schema validation failed\",\n    \"details\": {\n      \"errors\": [\n        {\n          \"field\": \"title\",\n          \"code\": \"INVALID_LENGTH_RANGE\",\n          \"message\": \"minLength cannot be greater than maxLength\"\n        },\n        {\n          \"field\": \"author\",\n          \"code\": \"MISSING_COLLECTION_TYPE\",\n          \"message\": \"Reference fields must specify a collectionType\"\n        },\n        {\n          \"field\": \"nested\",\n          \"code\": \"CIRCULAR_REFERENCE\",\n          \"message\": \"A component cannot reference itself\"\n        }\n      ]\n    }\n  }\n}\n",[619,4480,4481,4485,4497,4515,4533,4545,4557,4561,4579,4597,4614,4619,4623,4641,4659,4676,4680,4684,4702,4720,4737,4741,4745,4749,4753],{"__ignoreMap":633},[637,4482,4483],{"class":639,"line":640},[637,4484,644],{"class":643},[637,4486,4487,4489,4491,4493,4495],{"class":639,"line":647},[637,4488,650],{"class":643},[637,4490,4315],{"class":653},[637,4492,657],{"class":643},[637,4494,660],{"class":643},[637,4496,1255],{"class":643},[637,4498,4499,4501,4503,4505,4507,4509,4511,4513],{"class":639,"line":666},[637,4500,1260],{"class":643},[637,4502,619],{"class":678},[637,4504,657],{"class":643},[637,4506,660],{"class":643},[637,4508,686],{"class":643},[637,4510,4336],{"class":689},[637,4512,657],{"class":643},[637,4514,695],{"class":643},[637,4516,4517,4519,4521,4523,4525,4527,4529,4531],{"class":639,"line":672},[637,4518,1260],{"class":643},[637,4520,4347],{"class":678},[637,4522,657],{"class":643},[637,4524,660],{"class":643},[637,4526,686],{"class":643},[637,4528,4356],{"class":689},[637,4530,657],{"class":643},[637,4532,695],{"class":643},[637,4534,4535,4537,4539,4541,4543],{"class":639,"line":698},[637,4536,1260],{"class":643},[637,4538,4367],{"class":678},[637,4540,657],{"class":643},[637,4542,660],{"class":643},[637,4544,1255],{"class":643},[637,4546,4547,4549,4551,4553,4555],{"class":639,"line":719},[637,4548,675],{"class":643},[637,4550,4380],{"class":1270},[637,4552,657],{"class":643},[637,4554,660],{"class":643},[637,4556,663],{"class":643},[637,4558,4559],{"class":639,"line":740},[637,4560,4391],{"class":643},[637,4562,4563,4565,4567,4569,4571,4573,4575,4577],{"class":639,"line":755},[637,4564,4396],{"class":643},[637,4566,4400],{"class":4399},[637,4568,657],{"class":643},[637,4570,660],{"class":643},[637,4572,686],{"class":643},[637,4574,690],{"class":689},[637,4576,657],{"class":643},[637,4578,695],{"class":643},[637,4580,4581,4583,4585,4587,4589,4591,4593,4595],{"class":639,"line":761},[637,4582,4396],{"class":643},[637,4584,619],{"class":4399},[637,4586,657],{"class":643},[637,4588,660],{"class":643},[637,4590,686],{"class":643},[637,4592,1319],{"class":689},[637,4594,657],{"class":643},[637,4596,695],{"class":643},[637,4598,4599,4601,4603,4605,4607,4609,4612],{"class":639,"line":766},[637,4600,4396],{"class":643},[637,4602,4347],{"class":4399},[637,4604,657],{"class":643},[637,4606,660],{"class":643},[637,4608,686],{"class":643},[637,4610,4611],{"class":689},"minLength cannot be greater than maxLength",[637,4613,3613],{"class":643},[637,4615,4616],{"class":639,"line":790},[637,4617,4618],{"class":643},"        },\n",[637,4620,4621],{"class":639,"line":810},[637,4622,4391],{"class":643},[637,4624,4625,4627,4629,4631,4633,4635,4637,4639],{"class":639,"line":829},[637,4626,4396],{"class":643},[637,4628,4400],{"class":4399},[637,4630,657],{"class":643},[637,4632,660],{"class":643},[637,4634,686],{"class":643},[637,4636,1982],{"class":689},[637,4638,657],{"class":643},[637,4640,695],{"class":643},[637,4642,4643,4645,4647,4649,4651,4653,4655,4657],{"class":639,"line":842},[637,4644,4396],{"class":643},[637,4646,619],{"class":4399},[637,4648,657],{"class":643},[637,4650,660],{"class":643},[637,4652,686],{"class":643},[637,4654,1923],{"class":689},[637,4656,657],{"class":643},[637,4658,695],{"class":643},[637,4660,4661,4663,4665,4667,4669,4671,4674],{"class":639,"line":848},[637,4662,4396],{"class":643},[637,4664,4347],{"class":4399},[637,4666,657],{"class":643},[637,4668,660],{"class":643},[637,4670,686],{"class":643},[637,4672,4673],{"class":689},"Reference fields must specify a collectionType",[637,4675,3613],{"class":643},[637,4677,4678],{"class":639,"line":854},[637,4679,4618],{"class":643},[637,4681,4682],{"class":639,"line":3538},[637,4683,4391],{"class":643},[637,4685,4686,4688,4690,4692,4694,4696,4698,4700],{"class":639,"line":3543},[637,4687,4396],{"class":643},[637,4689,4400],{"class":4399},[637,4691,657],{"class":643},[637,4693,660],{"class":643},[637,4695,686],{"class":643},[637,4697,2586],{"class":689},[637,4699,657],{"class":643},[637,4701,695],{"class":643},[637,4703,4704,4706,4708,4710,4712,4714,4716,4718],{"class":639,"line":3550},[637,4705,4396],{"class":643},[637,4707,619],{"class":4399},[637,4709,657],{"class":643},[637,4711,660],{"class":643},[637,4713,686],{"class":643},[637,4715,2336],{"class":689},[637,4717,657],{"class":643},[637,4719,695],{"class":643},[637,4721,4722,4724,4726,4728,4730,4732,4735],{"class":639,"line":3556},[637,4723,4396],{"class":643},[637,4725,4347],{"class":4399},[637,4727,657],{"class":643},[637,4729,660],{"class":643},[637,4731,686],{"class":643},[637,4733,4734],{"class":689},"A component cannot reference itself",[637,4736,3613],{"class":643},[637,4738,4739],{"class":639,"line":3561},[637,4740,4454],{"class":643},[637,4742,4743],{"class":639,"line":3574},[637,4744,4459],{"class":643},[637,4746,4747],{"class":639,"line":3579},[637,4748,845],{"class":643},[637,4750,4751],{"class":639,"line":3598},[637,4752,1292],{"class":643},[637,4754,4755],{"class":639,"line":3616},[637,4756,857],{"class":643},[598,4758],{},[571,4760,4762],{"id":4761},"validation-error-reference","Validation Error Reference",[605,4764,4766],{"id":4765},"complete-error-code-list","Complete Error Code List",[4768,4769,4770,4789],"table",{},[4771,4772,4773],"thead",{},[4774,4775,4776,4780,4783,4786],"tr",{},[4777,4778,4779],"th",{},"Code",[4777,4781,4782],{},"Trigger",[4777,4784,4785],{},"Severity",[4777,4787,4788],{},"How to Fix",[4790,4791,4792,4808,4822,4836,4849,4866,4894,4917,4931,4945,4968,4991,5011,5026],"tbody",{},[4774,4793,4794,4799,4802,4805],{},[4795,4796,4797],"td",{},[619,4798,621],{},[4795,4800,4801],{},"Same field name twice",[4795,4803,4804],{},"Error",[4795,4806,4807],{},"Rename field to be unique",[4774,4809,4810,4814,4817,4819],{},[4795,4811,4812],{},[619,4813,1066],{},[4795,4815,4816],{},"Unknown field type",[4795,4818,4804],{},[4795,4820,4821],{},"Use a supported field type",[4774,4823,4824,4828,4831,4833],{},[4795,4825,4826],{},[619,4827,1319],{},[4795,4829,4830],{},"minLength > maxLength",[4795,4832,4804],{},[4795,4834,4835],{},"Fix constraint values",[4774,4837,4838,4842,4845,4847],{},[4795,4839,4840],{},[619,4841,1600],{},[4795,4843,4844],{},"min > max (or minItems > maxItems)",[4795,4846,4804],{},[4795,4848,4835],{},[4774,4850,4851,4855,4861,4863],{},[4795,4852,4853],{},[619,4854,1923],{},[4795,4856,4857,4858,4860],{},"Reference missing collection (",[619,4859,1879],{}," mode)",[4795,4862,4804],{},[4795,4864,4865],{},"Add collectionType option",[4774,4867,4868,4872,4885,4888],{},[4795,4869,4870],{},[619,4871,1932],{},[4795,4873,4874,4875,4878,4879,4881,4882,4884],{},"Collection doesn't exist — ",[584,4876,4877],{},"defined but currently unreachable",": no production route passes the ",[619,4880,1940],{}," option ",[619,4883,1944],{}," needs to trigger it",[4795,4886,4887],{},"Error (dead code today)",[4795,4889,4890,4891,4893],{},"N\u002FA — a nonexistent ",[619,4892,1872],{}," is silently accepted",[4774,4895,4896,4901,4910,4912],{},[4795,4897,4898],{},[619,4899,4900],{},"INVALID_PAGE_TYPE",[4795,4902,4903,4904,4878,4906,4909],{},"Page reference targets a page type that doesn't exist — ",[584,4905,4877],{},[619,4907,4908],{},"existingPageTypes"," option needed to trigger it",[4795,4911,4887],{},[4795,4913,4890,4914,4893],{},[619,4915,4916],{},"pageType",[4774,4918,4919,4923,4926,4928],{},[4795,4920,4921],{},[619,4922,2324],{},[4795,4924,4925],{},"NestedComponent missing slug",[4795,4927,4804],{},[4795,4929,4930],{},"Add componentSlug option",[4774,4932,4933,4937,4940,4942],{},[4795,4934,4935],{},[619,4936,2330],{},[4795,4938,4939],{},"Component doesn't exist",[4795,4941,4804],{},[4795,4943,4944],{},"Reference existing component",[4774,4946,4947,4951,4963,4965],{},[4795,4948,4949],{},[619,4950,2336],{},[4795,4952,4953,4954,4959,4960,4962],{},"Self or indirect loop — ",[584,4955,4956,4957],{},"only checked for ",[619,4958,2309],{},", not ",[619,4961,2807],{}," (see rules 7–8 above)",[4795,4964,4804],{},[4795,4966,4967],{},"Remove circular reference",[4774,4969,4970,4974,4983,4985],{},[4795,4971,4972],{},[619,4973,3298],{},[4795,4975,4976,4977,4979,4980,4982],{},"2+ levels deep — ",[584,4978,4877],{},": no production route increments ",[619,4981,3257],{}," when recursing, so this never fires (see rule 9 above)",[4795,4984,4887],{},[4795,4986,4987,4988,4990],{},"N\u002FA — deep ",[619,4989,2309],{}," chains are silently accepted",[4774,4992,4993,4998,5006,5008],{},[4795,4994,4995],{},[619,4996,4997],{},"UNSUPPORTED_OPTION",[4795,4999,5000,5001,1896,5003,5005],{},"Option not applicable for this field configuration (e.g. ",[619,5002,1872],{},[619,5004,4916],{}," on a user or blog-post reference)",[4795,5007,4804],{},[4795,5009,5010],{},"Remove the unsupported option",[4774,5012,5013,5018,5021,5023],{},[4795,5014,5015],{},[619,5016,5017],{},"MISSING_REPEATER_FIELDS",[4795,5019,5020],{},"Repeater has no sub-fields defined",[4795,5022,4804],{},[4795,5024,5025],{},"Define at least one sub-field",[4774,5027,5028,5033,5045,5047],{},[4795,5029,5030],{},[619,5031,5032],{},"DISALLOWED_REPEATER_FIELD_TYPE",[4795,5034,5035,5036,3272,5038,5040,5041,5044],{},"Repeater sub-field uses a disallowed type (",[619,5037,2807],{},[619,5039,2309],{},", or ",[619,5042,5043],{},"repeater",")",[4795,5046,4804],{},[4795,5048,5049],{},"Use an allowed sub-field type",[605,5051,5053],{"id":5052},"breaking-change-warning-codes","Breaking Change Warning Codes",[567,5055,5056],{},"These appear as warnings, not errors, and do not block saving:",[4768,5058,5059,5070],{},[4771,5060,5061],{},[4774,5062,5063,5065,5067],{},[4777,5064,4779],{},[4777,5066,4782],{},[4777,5068,5069],{},"Data Impact",[4790,5071,5072,5084,5096],{},[4774,5073,5074,5078,5081],{},[4795,5075,5076],{},[619,5077,3739],{},[4795,5079,5080],{},"Field deleted from schema",[4795,5082,5083],{},"Data lost\u002Finaccessible",[4774,5085,5086,5090,5093],{},[4795,5087,5088],{},[619,5089,3930],{},[4795,5091,5092],{},"Field type changed",[4795,5094,5095],{},"Data type mismatch",[4774,5097,5098,5102,5105],{},[4795,5099,5100],{},[619,5101,4060],{},[4795,5103,5104],{},"Optional became required",[4795,5106,5107],{},"Existing items invalid",[598,5109],{},[571,5111,1952],{"id":5112},"validation-flow",[567,5114,5115,5116,1896,5118,1308,5121,1881,5123,5126,5127,5129],{},"The steps below reflect what ",[619,5117,3264],{},[619,5119,5120],{},"PUT \u002Fadmin\u002Fpage-types",[619,5122,3279],{},[619,5124,5125],{},"apps\u002Fapi\u002Fsrc\u002Froutes\u002F{page-types,collection-types}.ts",") actually do, in order. Steps 6 (circular reference) and 7 (nesting depth) run as part of ",[619,5128,1944],{}," (step 5) rather than as separate passes, and nesting depth is currently a no-op (see rule 9 above).",[605,5131,5133],{"id":5132},"creation-post","Creation (POST)",[628,5135,5138],{"className":5136,"code":5137,"language":733},[3197],"1. Input validation (Zod schema, via zValidator)\n2. Slug-uniqueness check — runs BEFORE schema validation; 409 DUPLICATE_SLUG on collision\n3. Duplicate field names check         ⎫\n4. Valid field types check             ⎪\n5. Field-specific option validation    ⎬ all part of validateSchema()\n6. Component reference validation      ⎪\n7. Circular reference detection        ⎪ (nestedComponent only — see rule 8)\n8. Nesting depth enforcement           ⎭ (currently unreachable — see rule 9)\n   ↓\n   If slug conflict → 409 Conflict\n   If schema validation fails → 400 Bad Request\n   If all pass → 201 Created\n",[619,5139,5137],{"__ignoreMap":633},[605,5141,5143],{"id":5142},"update-put","Update (PUT)",[628,5145,5148],{"className":5146,"code":5147,"language":733},[3197],"1. Input validation (Zod schema, via zValidator)\n2. Fetch existing record; 404 NOT_FOUND if missing\n3. Slug-uniqueness check, only if slug is being changed (collection types only —\n   page types don't allow changing slug via PUT at all)\n4. Collection types only: singleton-conversion check — converting isSingleton\n   false→true with more than 1 existing item returns 400 SINGLETON_CONVERSION_ERROR\n   (this check is not documented elsewhere and runs BEFORE schema validation)\n5. If a new `schema` is supplied, validateSchema() runs (steps 3-8 from Creation above)\n   ↓ 400 Bad Request if it fails\n6. Breaking change detection — CONDITIONAL, not unconditional: only runs when a new\n   `schema` was supplied AND at least one page\u002Fitem already uses this type\n   (pageCount > 0 \u002F itemCount > 0). No existing content → no breaking-change check\n   at all, even if the new schema removes fields.\n   ↓\n   If structural validation fails → 400 Bad Request\n   If structural validation passes → 200 OK\n   If breaking changes found (and existing content) → 200 OK + warnings\n",[619,5149,5147],{"__ignoreMap":633},[605,5151,5153],{"id":5152},"deletion-delete","Deletion (DELETE)",[628,5155,5158],{"className":5156,"code":5157,"language":733},[3197],"1. Check usage count\n   ↓\n   If in use → 409 Conflict\n   If unused → 200 OK (soft delete)\n",[619,5159,5157],{"__ignoreMap":633},[598,5161],{},[571,5163,5165],{"id":5164},"client-side-validation","Client-Side Validation",[567,5167,5168,617,5171,1881,5174,5177,5178,5181,5182,1308,5184,5186],{},[584,5169,5170],{},"The admin UI's real-time validation is minimal — far less than the full rule set enforced server-side.",[619,5172,5173],{},"FieldEditor.vue",[619,5175,5176],{},"apps\u002Fadmin\u002Fapp\u002Fcomponents\u002Fschema\u002FFieldEditor.vue",") gates its Save button on a single ",[619,5179,5180],{},"isValid"," check: that ",[619,5183,703],{},[619,5185,679],{}," are both non-empty, trimmed strings. That's it.",[605,5188,5190],{"id":5189},"real-time-checks","Real-Time Checks",[1917,5192,5193,5196],{},[581,5194,5195],{},"Label is non-empty",[581,5197,5198],{},"Name is non-empty",[567,5200,5201],{},"None of the following are checked client-side while building a schema — they're only caught when the schema is submitted and validated server-side:",[1917,5203,5204,5207,5210,5218,5221],{},[581,5205,5206],{},"Duplicate field name detection",[581,5208,5209],{},"Field type validation",[581,5211,5212,5213,5215,5216,5044],{},"Constraint range validation (e.g. ",[619,5214,1418],{}," > ",[619,5217,1434],{},[581,5219,5220],{},"Component existence lookup",[581,5222,5223],{},"Circular reference detection",[605,5225,5227],{"id":5226},"when-saving","When Saving",[567,5229,5230],{},"Because client-side checks are minimal, saving to the API is where almost all validation actually happens. A field can look \"valid\" in the editor (non-empty label\u002Fname) and still be rejected by the server for any of the reasons above — always handle and surface the API's error response rather than assuming the UI already caught everything.",[605,5232,5234],{"id":5233},"error-display","Error Display",[567,5236,5237],{},"Validation errors are displayed:",[1917,5239,5240,5246,5252],{},[581,5241,5242,5245],{},[584,5243,5244],{},"Inline"," - Below the problem field",[581,5247,5248,5251],{},[584,5249,5250],{},"Summary"," - At top of form",[581,5253,5254,5257],{},[584,5255,5256],{},"Details"," - Expanded error messages with fix suggestions",[598,5259],{},[571,5261,10],{"id":5262},"best-practices",[578,5264,5265,5271,5277,5283,5289,5295,5301,5307],{},[581,5266,5267,5270],{},[584,5268,5269],{},"Plan Before Building"," - Know your field structure before creating",[581,5272,5273,5276],{},[584,5274,5275],{},"Use Appropriate Types"," - Choose specific field types for data",[581,5278,5279,5282],{},[584,5280,5281],{},"Set Constraints Early"," - Define min\u002Fmax before collecting data",[581,5284,5285,5288],{},[584,5286,5287],{},"Reference Existing Items"," - Don't reference collections\u002Fcomponents that don't exist",[581,5290,5291,5294],{},[584,5292,5293],{},"Test Component References"," - Verify circular reference prevention works",[581,5296,5297,5300],{},[584,5298,5299],{},"Review Breaking Changes"," - Check warnings when modifying in-use schemas",[581,5302,5303,5306],{},[584,5304,5305],{},"Document Constraints"," - Explain field limits to editors via helpText",[581,5308,5309,5312],{},[584,5310,5311],{},"Version Your Schemas"," - Consider slug versioning for major changes",[598,5314],{},[571,5316,54],{"id":5317},"troubleshooting",[605,5319,5321],{"id":5320},"duplicate-field-name-error","\"Duplicate field name\" Error",[567,5323,5324,5327],{},[584,5325,5326],{},"Problem:"," Two fields have the same name",[567,5329,5330,5333],{},[584,5331,5332],{},"Solution:"," Give each field a unique name (camelCase recommended)",[598,5335],{},[605,5337,5339],{"id":5338},"invalid-field-type-error","\"Invalid field type\" Error",[567,5341,5342,5344],{},[584,5343,5326],{}," Field type is not recognized",[567,5346,5347,5349,5350],{},[584,5348,5332],{}," Use one of the supported field types listed in the ",[1055,5351,1058],{"href":1057},[598,5353],{},[605,5355,5357],{"id":5356},"minlength-cannot-be-greater-than-maxlength-error","\"minLength cannot be greater than maxLength\" Error",[567,5359,5360,5362],{},[584,5361,5326],{}," Text field has minLength > maxLength",[567,5364,5365,5367],{},[584,5366,5332],{}," Ensure minLength ≤ maxLength",[598,5369],{},[605,5371,5373],{"id":5372},"circular-reference-detected-error","\"Circular reference detected\" Error",[567,5375,5376,5378],{},[584,5377,5326],{}," Component references itself or forms a chain",[567,5380,5381,5383],{},[584,5382,5332],{}," Remove self-references and ensure component hierarchy is acyclic",[598,5385],{},[605,5387,5389],{"id":5388},"component-nesting-limit-exceeded-error","\"Component nesting limit exceeded\" Error",[567,5391,5392,5395,5396,5398],{},[584,5393,5394],{},"This error is not currently reachable"," (see rule 9 above) — deep ",[619,5397,2309],{}," chains are accepted today, not rejected. The guidance below describes the intended behavior if\u002Fwhen the check is wired up, and is still good practice regardless:",[567,5400,5401,5403],{},[584,5402,5326],{}," Component nesting deeper than 1 level",[567,5405,5406,5408,5409,5411,5412,5414],{},[584,5407,5332],{}," Use ",[619,5410,2807],{}," instead of multiple ",[619,5413,2309],{}," fields",[598,5416],{},[571,5418,5420],{"id":5419},"related-documentation","Related Documentation",[1917,5422,5423,5427,5433,5439],{},[581,5424,5425],{},[1055,5426,1058],{"href":1057},[581,5428,5429],{},[1055,5430,5432],{"href":5431},"..\u002F..\u002Fadmin-api\u002Fpage-types","Page Types API",[581,5434,5435],{},[1055,5436,5438],{"href":5437},"..\u002F..\u002Fadmin-api\u002Fcomponents","Components API",[581,5440,5441],{},[1055,5442,5444],{"href":5443},"..\u002Fguides\u002Fschema-builder","Schema Builder Guide",[5446,5447,5448],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}",{"title":633,"searchDepth":647,"depth":647,"links":5450},[5451,5452,5463,5467,5471,5475,5480,5485,5486,5493],{"id":573,"depth":647,"text":38},{"id":602,"depth":647,"text":603,"children":5453},[5454,5455,5456,5457,5458,5459,5460,5461,5462],{"id":607,"depth":666,"text":608},{"id":1049,"depth":666,"text":1050},{"id":1301,"depth":666,"text":1302},{"id":1587,"depth":666,"text":1588},{"id":1862,"depth":666,"text":1863},{"id":2303,"depth":666,"text":2304},{"id":2801,"depth":666,"text":2802},{"id":3167,"depth":666,"text":3168},{"id":3240,"depth":666,"text":3241},{"id":3726,"depth":647,"text":3727,"children":5464},[5465,5466],{"id":3733,"depth":666,"text":3734},{"id":4212,"depth":666,"text":4213},{"id":4294,"depth":647,"text":4295,"children":5468},[5469,5470],{"id":4298,"depth":666,"text":4299},{"id":4474,"depth":666,"text":4475},{"id":4761,"depth":647,"text":4762,"children":5472},[5473,5474],{"id":4765,"depth":666,"text":4766},{"id":5052,"depth":666,"text":5053},{"id":5112,"depth":647,"text":1952,"children":5476},[5477,5478,5479],{"id":5132,"depth":666,"text":5133},{"id":5142,"depth":666,"text":5143},{"id":5152,"depth":666,"text":5153},{"id":5164,"depth":647,"text":5165,"children":5481},[5482,5483,5484],{"id":5189,"depth":666,"text":5190},{"id":5226,"depth":666,"text":5227},{"id":5233,"depth":666,"text":5234},{"id":5262,"depth":647,"text":10},{"id":5317,"depth":647,"text":54,"children":5487},[5488,5489,5490,5491,5492],{"id":5320,"depth":666,"text":5321},{"id":5338,"depth":666,"text":5339},{"id":5356,"depth":666,"text":5357},{"id":5372,"depth":666,"text":5373},{"id":5388,"depth":666,"text":5389},{"id":5419,"depth":647,"text":5420},"Validation rules applied to page type and component schemas.","md",{},{"title":58,"description":5494},"rCYmTTNzRw-ksIvZyKF0JjKhhrMDTGNw95Uq_ivabVE",[5500,5502],{"title":54,"path":55,"stem":56,"description":5501,"children":-1},"Diagnosing 401s, 404s, 429s, empty responses, slow requests and redirect handling.",{"title":62,"path":63,"stem":64,"description":5503,"children":-1},"Events emitted by content write operations, payload shape and retry behaviour.",1787919218224]