{
  "data": [
    {
      "key": "org_account",
      "name": "Account",
      "pluralName": "Accounts",
      "description": "Organisation (customer, supplier, partner or internal unit) referenced by every operational solution.",
      "path": "/api/public/v1/org-account",
      "localized": false,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Name",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "code",
          "kind": "slug",
          "label": "Account code",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "account_type",
          "kind": "enumeration",
          "label": "Type",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "customer",
              "prospect",
              "supplier",
              "partner",
              "internal"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "account_status",
          "kind": "enumeration",
          "label": "Account status",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "active",
              "on_hold",
              "closed"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "website",
          "kind": "url",
          "label": "Website",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "email",
          "kind": "email",
          "label": "Primary email",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "phone",
          "kind": "phone",
          "label": "Primary phone",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "vat_number",
          "kind": "text",
          "label": "VAT number",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "currency",
          "kind": "currency",
          "label": "Billing currency",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "parent",
          "kind": "relation",
          "label": "Parent account",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "org_account",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "billing_address",
          "kind": "component",
          "label": "Billing address",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "org_postal_address",
            "repeatable": false
          },
          "dynamicZone": null
        },
        {
          "name": "notes",
          "kind": "longText",
          "label": "Notes",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "alarm_category",
      "name": "Alarm category",
      "pluralName": "Alarm categories",
      "description": "Grouping of alarm definitions by functional area.",
      "path": "/api/public/v1/alarm-category",
      "localized": false,
      "fields": [
        {
          "name": "code",
          "kind": "slug",
          "label": "Code",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": {
            "regex": "^[a-z0-9-]+$"
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "name",
          "kind": "text",
          "label": "Name",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "description",
          "kind": "longText",
          "label": "Description",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "severityFloor",
          "kind": "enumeration",
          "label": "Severity floor",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "info",
              "warning",
              "critical"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "color",
          "kind": "color",
          "label": "Accent colour",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "seo",
          "kind": "component",
          "label": "SEO",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "seo_meta"
          },
          "dynamicZone": null
        },
        {
          "name": "definitions",
          "kind": "relation",
          "label": "Alarm definitions",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "alarm_definition",
            "cardinality": "oneToMany",
            "inverseName": "category"
          },
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "alarm_definition",
      "name": "Alarm definition",
      "pluralName": "Alarm definitions",
      "description": "A single machine-readable alarm contract.",
      "path": "/api/public/v1/alarm-definition",
      "localized": true,
      "fields": [
        {
          "name": "code",
          "kind": "text",
          "label": "Alarm code",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "title",
          "kind": "text",
          "label": "Title",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "summary",
          "kind": "longText",
          "label": "Summary",
          "description": null,
          "required": false,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "remediation",
          "kind": "richText",
          "label": "Remediation",
          "description": null,
          "required": false,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "severity",
          "kind": "enumeration",
          "label": "Severity",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "info",
              "warning",
              "critical"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "priority",
          "kind": "integer",
          "label": "Priority",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "max": 5,
            "min": 1
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "autoResolve",
          "kind": "boolean",
          "label": "Auto resolve",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "thresholdSeconds",
          "kind": "integer",
          "label": "Threshold (s)",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "min": 0
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "runbookUrl",
          "kind": "url",
          "label": "Runbook URL",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "ownerEmail",
          "kind": "email",
          "label": "Owner e-mail",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "payloadExample",
          "kind": "json",
          "label": "Payload example",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "category",
          "kind": "relation",
          "label": "Category",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "alarm_category",
            "cardinality": "manyToOne",
            "inverseName": "definitions"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "markets",
          "kind": "relation",
          "label": "Markets",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "country",
            "cardinality": "manyToMany"
          },
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "food_allergen",
      "name": "Allergen",
      "pluralName": "Allergens",
      "description": "Regulated allergen declaration. A document rather than an enum so the label, icon and legal wording can be localised and reused by every ingredient.",
      "path": "/api/public/v1/food-allergen",
      "localized": false,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Name",
          "description": null,
          "required": true,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "code",
          "kind": "slug",
          "label": "Code",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "eu_number",
          "kind": "text",
          "label": "EU annex number",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "severity",
          "kind": "enumeration",
          "label": "Severity",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "declare",
              "may_contain",
              "high_risk"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "icon",
          "kind": "icon",
          "label": "Icon",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "description",
          "kind": "longText",
          "label": "Description",
          "description": null,
          "required": false,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "article",
      "name": "Article",
      "pluralName": "Articles",
      "description": "Editorial article published on the public blog.",
      "path": "/api/public/v1/article",
      "localized": true,
      "fields": [
        {
          "name": "title",
          "kind": "text",
          "label": "Title",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "maxLength": 140
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "slug",
          "kind": "slug",
          "label": "Slug",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "excerpt",
          "kind": "longText",
          "label": "Excerpt",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "maxLength": 320
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "body",
          "kind": "richText",
          "label": "Body",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "category",
          "kind": "enumeration",
          "label": "Category",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "architecture",
              "engineering",
              "governance",
              "operations"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "tags",
          "kind": "tags",
          "label": "Tags",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "authorName",
          "kind": "text",
          "label": "Author",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "authorRole",
          "kind": "text",
          "label": "Author role",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "readingMinutes",
          "kind": "integer",
          "label": "Reading time (minutes)",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "max": 90,
            "min": 1
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "publishedOn",
          "kind": "date",
          "label": "Publication date",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "seo",
          "kind": "component",
          "label": "SEO",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "seo_meta"
          },
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "pim_brand",
      "name": "Brand",
      "pluralName": "Brands",
      "description": "Brand or manufacturer record shared by commerce and PIM.",
      "path": "/api/public/v1/pim-brand",
      "localized": false,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Name",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "slug",
          "kind": "slug",
          "label": "Slug",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "logo",
          "kind": "image",
          "label": "Logo",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "website",
          "kind": "url",
          "label": "Website",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "country",
          "kind": "country",
          "label": "Country of origin",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "description",
          "kind": "longText",
          "label": "Description",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "shop_cart",
      "name": "Cart",
      "pluralName": "Carts",
      "description": "Live cart addressed by an unguessable token. Anonymous until a customer is attached; expires automatically.",
      "path": "/api/public/v1/shop-cart",
      "localized": false,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Cart reference",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "token_prefix",
          "kind": "text",
          "label": "Token prefix",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "market",
          "kind": "relation",
          "label": "Market",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "shop_market",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "customer",
          "kind": "relation",
          "label": "Customer",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "org_contact",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "email",
          "kind": "email",
          "label": "E-mail",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "currency",
          "kind": "currency",
          "label": "Currency",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "state",
          "kind": "enumeration",
          "label": "State",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "open",
              "ordered",
              "abandoned",
              "expired"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "lines",
          "kind": "component",
          "label": "Lines",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "shop_cart_line",
            "repeatable": true
          },
          "dynamicZone": null
        },
        {
          "name": "discount",
          "kind": "relation",
          "label": "Discount",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "shop_discount",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "shipping_method",
          "kind": "relation",
          "label": "Shipping method",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "shop_shipping_method",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "shipping_address",
          "kind": "component",
          "label": "Shipping address",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "org_postal_address",
            "repeatable": false
          },
          "dynamicZone": null
        },
        {
          "name": "billing_address",
          "kind": "component",
          "label": "Billing address",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "org_postal_address",
            "repeatable": false
          },
          "dynamicZone": null
        },
        {
          "name": "subtotal",
          "kind": "money",
          "label": "Subtotal",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "discount_total",
          "kind": "money",
          "label": "Discount",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "shipping_total",
          "kind": "money",
          "label": "Shipping",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "tax_total",
          "kind": "money",
          "label": "Tax",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "grand_total",
          "kind": "money",
          "label": "Grand total",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "expires_at",
          "kind": "dateTime",
          "label": "Expires at",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "last_activity_at",
          "kind": "dateTime",
          "label": "Last activity",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "org_contact",
      "name": "Contact",
      "pluralName": "Contacts",
      "description": "Person linked to an account: buyer, guest, lead owner or notification recipient.",
      "path": "/api/public/v1/org-contact",
      "localized": false,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Full name",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "email",
          "kind": "email",
          "label": "Email",
          "description": null,
          "required": false,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "phone",
          "kind": "phone",
          "label": "Phone",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "job_title",
          "kind": "text",
          "label": "Job title",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "company",
          "kind": "relation",
          "label": "Account",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "org_account",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "language",
          "kind": "language",
          "label": "Preferred language",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "marketing_opt_in",
          "kind": "boolean",
          "label": "Marketing opt-in",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "lifetime_orders",
          "kind": "integer",
          "label": "Lifetime orders",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "notes",
          "kind": "longText",
          "label": "Notes",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "country",
      "name": "Country",
      "pluralName": "Countries",
      "description": "Market reference data.",
      "path": "/api/public/v1/country",
      "localized": false,
      "fields": [
        {
          "name": "iso2",
          "kind": "text",
          "label": "ISO 3166-1 alpha-2",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": {
            "regex": "^[A-Z]{2}$"
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "name",
          "kind": "text",
          "label": "Name",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "currency",
          "kind": "text",
          "label": "Currency",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "regex": "^[A-Z]{3}$"
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "shop_customer_profile",
      "name": "Customer profile",
      "pluralName": "Customer profiles",
      "description": "Commerce overlay on a contact: default market, customer group, consents and billing data.",
      "path": "/api/public/v1/shop-customer-profile",
      "localized": false,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Label",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "contact",
          "kind": "relation",
          "label": "Contact",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "org_contact",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "market",
          "kind": "relation",
          "label": "Default market",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "shop_market",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "billing_account",
          "kind": "relation",
          "label": "Billing account",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "org_account",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "tax_id",
          "kind": "text",
          "label": "Tax id",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "billing_address",
          "kind": "component",
          "label": "Billing address",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "org_postal_address",
            "repeatable": false
          },
          "dynamicZone": null
        },
        {
          "name": "marketing_consent",
          "kind": "boolean",
          "label": "Marketing consent",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "marketing_consent_at",
          "kind": "dateTime",
          "label": "Consent recorded at",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "state",
          "kind": "enumeration",
          "label": "State",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "active",
              "blocked"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "internal_note",
          "kind": "longText",
          "label": "Internal note",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "food_diet",
      "name": "Diet label",
      "pluralName": "Diet labels",
      "description": "Diet, religious or lifestyle classification (vegan, halal, gluten-free…) shared by ingredients and menu items.",
      "path": "/api/public/v1/food-diet",
      "localized": false,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Name",
          "description": null,
          "required": true,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "code",
          "kind": "slug",
          "label": "Code",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "kind",
          "kind": "enumeration",
          "label": "Kind",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "diet",
              "religious",
              "lifestyle",
              "medical"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "icon",
          "kind": "icon",
          "label": "Icon",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "colour",
          "kind": "color",
          "label": "Badge colour",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "description",
          "kind": "longText",
          "label": "Description",
          "description": null,
          "required": false,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "shop_discount",
      "name": "Discount",
      "pluralName": "Discounts",
      "description": "Promotion rule: code, mechanic, value and redemption window.",
      "path": "/api/public/v1/shop-discount",
      "localized": false,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Name",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "code",
          "kind": "slug",
          "label": "Code",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "mechanic",
          "kind": "enumeration",
          "label": "Mechanic",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "percent",
              "amount",
              "free_shipping"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "value",
          "kind": "decimal",
          "label": "Value",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "minimum_order",
          "kind": "money",
          "label": "Minimum order value",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "valid_from",
          "kind": "date",
          "label": "Valid from",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "valid_to",
          "kind": "date",
          "label": "Valid to",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "usage_limit",
          "kind": "integer",
          "label": "Usage limit",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "active",
          "kind": "boolean",
          "label": "Active",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "shop_fulfillment",
      "name": "Fulfilment",
      "pluralName": "Fulfilments",
      "description": "Physical or digital delivery of part of an order, optionally linked to a warehouse shipment.",
      "path": "/api/public/v1/shop-fulfillment",
      "localized": false,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Reference",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "order",
          "kind": "relation",
          "label": "Order",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "shop_order",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "shipping_method",
          "kind": "relation",
          "label": "Shipping method",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "shop_shipping_method",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "shipment_id",
          "kind": "uuid",
          "label": "Warehouse shipment id",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "lines",
          "kind": "component",
          "label": "Lines",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "shop_fulfillment_line",
            "repeatable": true
          },
          "dynamicZone": null
        },
        {
          "name": "carrier",
          "kind": "text",
          "label": "Carrier",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "tracking_number",
          "kind": "text",
          "label": "Tracking number",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "tracking_url",
          "kind": "url",
          "label": "Tracking URL",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "state",
          "kind": "enumeration",
          "label": "State",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "pending",
              "packed",
              "dispatched",
              "delivered",
              "cancelled"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "dispatched_at",
          "kind": "dateTime",
          "label": "Dispatched at",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "delivered_at",
          "kind": "dateTime",
          "label": "Delivered at",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "food_ingredient",
      "name": "Ingredient",
      "pluralName": "Ingredients",
      "description": "Single source of truth for a kitchen item: cost, unit, allergens, diet labels and nutrition. Referenced with a quantity by recipes and options.",
      "path": "/api/public/v1/food-ingredient",
      "localized": false,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Name",
          "description": null,
          "required": true,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "code",
          "kind": "slug",
          "label": "Code",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "sku",
          "kind": "text",
          "label": "Stock SKU",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "category",
          "kind": "enumeration",
          "label": "Category",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "base",
              "sauce",
              "cheese",
              "meat",
              "fish",
              "vegetable",
              "fruit",
              "herb",
              "spice",
              "dairy",
              "bakery",
              "oil",
              "other"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "base_unit",
          "kind": "enumeration",
          "label": "Stock unit",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "g",
              "kg",
              "ml",
              "l",
              "piece",
              "slice",
              "scoop",
              "portion",
              "tbsp",
              "tsp"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "unit_cost",
          "kind": "money",
          "label": "Cost per stock unit",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "allergens",
          "kind": "relation",
          "label": "Allergens",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "food_allergen",
            "cardinality": "manyToMany"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "diets",
          "kind": "relation",
          "label": "Diet labels",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "food_diet",
            "cardinality": "manyToMany"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "selectable",
          "kind": "boolean",
          "label": "Guest-selectable",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "removable",
          "kind": "boolean",
          "label": "Removable",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "nutrition",
          "kind": "component",
          "label": "Nutrition per 100",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "food_nutrition",
            "repeatable": false
          },
          "dynamicZone": null
        },
        {
          "name": "image",
          "kind": "image",
          "label": "Image",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "kitchen_note",
          "kind": "longText",
          "label": "Kitchen note",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "landing_page",
      "name": "Landing page",
      "pluralName": "Landing pages",
      "description": "Composable marketing page assembled from blocks.",
      "path": "/api/public/v1/landing-page",
      "localized": false,
      "fields": [
        {
          "name": "title",
          "kind": "text",
          "label": "Title",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "maxLength": 120
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "slug",
          "kind": "slug",
          "label": "Slug",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "layoutStyle",
          "kind": "enumeration",
          "label": "Layout style",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "standard",
              "video",
              "minimal"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "heroVideoUrl",
          "kind": "url",
          "label": "Hero video URL",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "body",
          "kind": "markdown",
          "label": "Intro (markdown)",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "blocks",
          "kind": "dynamicZone",
          "label": "Page blocks",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": {
            "max": 12,
            "min": 1,
            "allowed": [
              "hero_block",
              "rich_text_block",
              "cta_block"
            ]
          }
        },
        {
          "name": "gallery",
          "kind": "assetGallery",
          "label": "Gallery",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "campaignRating",
          "kind": "rating",
          "label": "Campaign rating",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "max": 5,
            "min": 0
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "readTimeSeconds",
          "kind": "duration",
          "label": "Estimated read time",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "contactPhone",
          "kind": "phone",
          "label": "Contact phone",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "allowlistIp",
          "kind": "ipAddress",
          "label": "Preview allowlist IP",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "previewSecret",
          "kind": "password",
          "label": "Preview secret",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "seo",
          "kind": "component",
          "label": "SEO",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "seo_meta"
          },
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "lifecycle_status",
      "name": "Lifecycle status",
      "pluralName": "Lifecycle statuses",
      "description": "TMF lifecycle status catalogue shared by every catalog entity.",
      "path": "/api/public/v1/lifecycle-status",
      "localized": false,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Name",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "code",
          "kind": "slug",
          "label": "Code",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "phase",
          "kind": "enumeration",
          "label": "Phase",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "design",
              "active",
              "retired",
              "obsolete"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "is_sellable",
          "kind": "boolean",
          "label": "Sellable",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "color",
          "kind": "color",
          "label": "Badge colour",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "sort_order",
          "kind": "integer",
          "label": "Sort order",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "description",
          "kind": "longText",
          "label": "Description",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "shop_market",
      "name": "Market",
      "pluralName": "Markets",
      "description": "A sellable market: country, currency, languages and whether catalogue prices already include tax.",
      "path": "/api/public/v1/shop-market",
      "localized": false,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Name",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "code",
          "kind": "slug",
          "label": "Code",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "country",
          "kind": "country",
          "label": "Country",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "currency",
          "kind": "currency",
          "label": "Currency",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "locales",
          "kind": "list",
          "label": "Locales",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": {
            "itemKind": "text"
          },
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "channel",
          "kind": "relation",
          "label": "Default sales channel",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "chm_channel",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "prices_include_tax",
          "kind": "boolean",
          "label": "Catalogue prices include tax",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "rounding",
          "kind": "enumeration",
          "label": "Rounding",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "line",
              "order"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "default_market",
          "kind": "boolean",
          "label": "Default market",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "active",
          "kind": "boolean",
          "label": "Active",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "food_menu",
      "name": "Menu",
      "pluralName": "Menus",
      "description": "A published menu: which categories are on it, where it is served and for how long (lunch menu, delivery menu, Christmas menu).",
      "path": "/api/public/v1/food-menu",
      "localized": false,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Name",
          "description": null,
          "required": true,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "code",
          "kind": "slug",
          "label": "Code",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "venues",
          "kind": "relation",
          "label": "Venues",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "food_venue",
            "cardinality": "manyToMany"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "market",
          "kind": "relation",
          "label": "Market",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "shop_market",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "categories",
          "kind": "relation",
          "label": "Categories",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "food_menu_category",
            "cardinality": "manyToMany"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "windows",
          "kind": "component",
          "label": "Service windows",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "food_service_window",
            "repeatable": true
          },
          "dynamicZone": null
        },
        {
          "name": "valid",
          "kind": "dateRange",
          "label": "Valid",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "channels",
          "kind": "multiSelect",
          "label": "Channels",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "dine_in",
              "takeaway",
              "delivery",
              "kiosk",
              "catering"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "active",
          "kind": "boolean",
          "label": "Active",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "description",
          "kind": "longText",
          "label": "Description",
          "description": null,
          "required": false,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "food_menu_category",
      "name": "Menu category",
      "pluralName": "Menu categories",
      "description": "Hierarchical menu section (Pizza, From the grill, Drinks) with its own channels and ordering.",
      "path": "/api/public/v1/food-menu-category",
      "localized": false,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Name",
          "description": null,
          "required": true,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "slug",
          "kind": "slug",
          "label": "Slug",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "parent",
          "kind": "relation",
          "label": "Parent",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "food_menu_category",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "sort",
          "kind": "sortOrder",
          "label": "Sort",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "icon",
          "kind": "icon",
          "label": "Icon",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "image",
          "kind": "image",
          "label": "Image",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "channels",
          "kind": "multiSelect",
          "label": "Channels",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "dine_in",
              "takeaway",
              "delivery",
              "kiosk",
              "catering"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "description",
          "kind": "longText",
          "label": "Description",
          "description": null,
          "required": false,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "food_menu_item",
      "name": "Menu item",
      "pluralName": "Menu items",
      "description": "A sellable dish. `item_type` selects exactly one spec block (polymorphic choice), the recipe is a quantised bridge to ingredients and the modifier groups drive the guest configurator.",
      "path": "/api/public/v1/food-menu-item",
      "localized": false,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Name",
          "description": null,
          "required": true,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "slug",
          "kind": "slug",
          "label": "Slug",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "subtitle",
          "kind": "text",
          "label": "Subtitle",
          "description": null,
          "required": false,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "description",
          "kind": "richText",
          "label": "Description",
          "description": null,
          "required": false,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "gallery",
          "kind": "assetGallery",
          "label": "Gallery",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "category",
          "kind": "relation",
          "label": "Category",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "food_menu_category",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "item_type",
          "kind": "enumeration",
          "label": "Item type",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "pizza",
              "burger",
              "steak",
              "pasta",
              "side",
              "drink",
              "dessert",
              "combo"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "spec",
          "kind": "dynamicZone",
          "label": "Type specification",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": {
            "max": 1,
            "allowed": [
              "food_pizza_spec",
              "food_burger_spec",
              "food_steak_spec",
              "food_drink_spec",
              "food_combo_spec"
            ],
            "blockWhen": {
              "food_combo_spec": {
                "field": "item_type",
                "value": "combo",
                "operator": "eq"
              },
              "food_drink_spec": {
                "field": "item_type",
                "value": "drink",
                "operator": "eq"
              },
              "food_pizza_spec": {
                "field": "item_type",
                "value": "pizza",
                "operator": "eq"
              },
              "food_steak_spec": {
                "field": "item_type",
                "value": "steak",
                "operator": "eq"
              },
              "food_burger_spec": {
                "field": "item_type",
                "value": "burger",
                "operator": "eq"
              }
            }
          }
        },
        {
          "name": "sizes",
          "kind": "component",
          "label": "Sizes",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "food_menu_item_size",
            "repeatable": true
          },
          "dynamicZone": null
        },
        {
          "name": "base_price",
          "kind": "money",
          "label": "Base price",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "tax_class",
          "kind": "relation",
          "label": "Tax class",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "shop_tax_class",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "pricing_policy",
          "kind": "relation",
          "label": "Pricing policy",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "food_pricing_policy",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "recipe",
          "kind": "component",
          "label": "Recipe",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "food_recipe_line",
            "repeatable": true
          },
          "dynamicZone": null
        },
        {
          "name": "components",
          "kind": "component",
          "label": "Components",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "food_component_line",
            "repeatable": true
          },
          "dynamicZone": null
        },
        {
          "name": "modifier_groups",
          "kind": "component",
          "label": "Modifier groups",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "food_menu_item_group",
            "repeatable": true
          },
          "dynamicZone": null
        },
        {
          "name": "rules",
          "kind": "component",
          "label": "Rules",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "food_option_rule",
            "repeatable": true
          },
          "dynamicZone": null
        },
        {
          "name": "allergens",
          "kind": "relation",
          "label": "Allergens",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "food_allergen",
            "cardinality": "manyToMany"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "diets",
          "kind": "relation",
          "label": "Diet labels",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "food_diet",
            "cardinality": "manyToMany"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "nutrition",
          "kind": "component",
          "label": "Nutrition per 100",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "food_nutrition",
            "repeatable": false
          },
          "dynamicZone": null
        },
        {
          "name": "prep_minutes",
          "kind": "integer",
          "label": "Preparation minutes",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "spiciness",
          "kind": "rating",
          "label": "Spiciness",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "max": 4
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "station",
          "kind": "enumeration",
          "label": "Kitchen station",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "pizza_oven",
              "grill",
              "fryer",
              "cold",
              "bar",
              "pastry"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "availability",
          "kind": "component",
          "label": "Service windows",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "food_service_window",
            "repeatable": true
          },
          "dynamicZone": null
        },
        {
          "name": "channels",
          "kind": "multiSelect",
          "label": "Channels",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "dine_in",
              "takeaway",
              "delivery",
              "kiosk",
              "catering"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "available",
          "kind": "boolean",
          "label": "Available",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "featured",
          "kind": "boolean",
          "label": "Featured",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "upsell_items",
          "kind": "relation",
          "label": "Goes well with",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "food_menu_item",
            "cardinality": "manyToMany"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "seo",
          "kind": "component",
          "label": "SEO",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "web_seo",
            "repeatable": false
          },
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "food_modifier_group",
      "name": "Modifier group",
      "pluralName": "Modifier groups",
      "description": "A question asked during configuration: pick one doneness, choose up to four toppings, add sides. Carries selection bounds, free allowance and cross-option rules.",
      "path": "/api/public/v1/food-modifier-group",
      "localized": false,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Question",
          "description": null,
          "required": true,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "code",
          "kind": "slug",
          "label": "Code",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "selection",
          "kind": "enumeration",
          "label": "Selection",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "single",
              "multiple",
              "quantised"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "ui",
          "kind": "enumeration",
          "label": "Control",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "radio",
              "checkbox",
              "chips",
              "stepper",
              "dropdown"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "required",
          "kind": "boolean",
          "label": "Required",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "min_select",
          "kind": "integer",
          "label": "Min selections",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "min": 0
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "max_select",
          "kind": "integer",
          "label": "Max selections",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "min": 0
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "free_included",
          "kind": "integer",
          "label": "Free selections included",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "min": 0
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "allow_removals",
          "kind": "boolean",
          "label": "Allow taking ingredients off",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "allow_half",
          "kind": "boolean",
          "label": "Allow half-and-half",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "applies_to",
          "kind": "multiSelect",
          "label": "Applies to item types",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "pizza",
              "burger",
              "steak",
              "pasta",
              "side",
              "drink",
              "dessert",
              "combo"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "options",
          "kind": "component",
          "label": "Options",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "min": 1,
            "target": "food_group_option",
            "repeatable": true
          },
          "dynamicZone": null
        },
        {
          "name": "rules",
          "kind": "component",
          "label": "Group rules",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "food_option_rule",
            "repeatable": true
          },
          "dynamicZone": null
        },
        {
          "name": "sort",
          "kind": "sortOrder",
          "label": "Sort",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "description",
          "kind": "longText",
          "label": "Help text",
          "description": null,
          "required": false,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "food_modifier_option",
      "name": "Modifier option",
      "pluralName": "Modifier options",
      "description": "One thing a guest can choose, add, remove or upgrade: extra cheese, gluten-free base, medium-rare, sweet potato fries.",
      "path": "/api/public/v1/food-modifier-option",
      "localized": false,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Name",
          "description": null,
          "required": true,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "code",
          "kind": "slug",
          "label": "Code",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "kind",
          "kind": "enumeration",
          "label": "Kind",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "add",
              "remove",
              "extra",
              "swap",
              "size",
              "base",
              "doneness",
              "side",
              "sauce",
              "drink"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "ingredient",
          "kind": "relation",
          "label": "Ingredient",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "food_ingredient",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "prep_level",
          "kind": "relation",
          "label": "Preparation level",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "food_prep_level",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "price_delta",
          "kind": "money",
          "label": "Price delta",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": {
            "allowNegative": true
          },
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "size_prices",
          "kind": "component",
          "label": "Price per size",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "food_size_price",
            "repeatable": true
          },
          "dynamicZone": null
        },
        {
          "name": "max_quantity",
          "kind": "integer",
          "label": "Max quantity",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "min": 0
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "default_quantity",
          "kind": "integer",
          "label": "Default quantity",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "min": 0
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "allow_half",
          "kind": "boolean",
          "label": "Allow half-and-half placement",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "preselected",
          "kind": "boolean",
          "label": "Preselected",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "available",
          "kind": "boolean",
          "label": "Available",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "channels",
          "kind": "multiSelect",
          "label": "Channels",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "dine_in",
              "takeaway",
              "delivery",
              "kiosk",
              "catering"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "rules",
          "kind": "component",
          "label": "Rules",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "food_option_rule",
            "repeatable": true
          },
          "dynamicZone": null
        },
        {
          "name": "sort",
          "kind": "sortOrder",
          "label": "Sort",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "image",
          "kind": "image",
          "label": "Image",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "kitchen_note",
          "kind": "longText",
          "label": "Kitchen note",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "shop_order",
      "name": "Order",
      "pluralName": "Orders",
      "description": "Customer order with lines, totals, fulfilment state and addresses.",
      "path": "/api/public/v1/shop-order",
      "localized": false,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Order number",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "customer",
          "kind": "relation",
          "label": "Customer",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "org_contact",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "company",
          "kind": "relation",
          "label": "Account",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "org_account",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "market",
          "kind": "relation",
          "label": "Market",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "shop_market",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "state",
          "kind": "enumeration",
          "label": "Order state",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "cart",
              "placed",
              "paid",
              "packed",
              "shipped",
              "delivered",
              "cancelled",
              "refunded"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "lines",
          "kind": "component",
          "label": "Lines",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "shop_order_line",
            "repeatable": true
          },
          "dynamicZone": null
        },
        {
          "name": "currency",
          "kind": "currency",
          "label": "Currency",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "subtotal",
          "kind": "money",
          "label": "Subtotal",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "discount",
          "kind": "relation",
          "label": "Discount",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "shop_discount",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "discount_total",
          "kind": "money",
          "label": "Discount total",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "shipping_method",
          "kind": "relation",
          "label": "Shipping method",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "shop_shipping_method",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "shipping_total",
          "kind": "money",
          "label": "Shipping",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "tax_total",
          "kind": "money",
          "label": "Tax",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "grand_total",
          "kind": "money",
          "label": "Grand total",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "shipping_address",
          "kind": "component",
          "label": "Shipping address",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "org_postal_address",
            "repeatable": false
          },
          "dynamicZone": null
        },
        {
          "name": "billing_address",
          "kind": "component",
          "label": "Billing address",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "org_postal_address",
            "repeatable": false
          },
          "dynamicZone": null
        },
        {
          "name": "payment_state",
          "kind": "enumeration",
          "label": "Payment state",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "unpaid",
              "authorised",
              "paid",
              "partially_refunded",
              "refunded"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "fulfillment_state",
          "kind": "enumeration",
          "label": "Fulfilment state",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "unfulfilled",
              "partial",
              "fulfilled",
              "returned"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "placed_at",
          "kind": "dateTime",
          "label": "Placed at",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "customer_note",
          "kind": "longText",
          "label": "Customer note",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "shop_payment_method",
      "name": "Payment method",
      "pluralName": "Payment methods",
      "description": "Payment option offered on a market: provider code, capture mode and customer-facing copy.",
      "path": "/api/public/v1/shop-payment-method",
      "localized": true,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Name",
          "description": null,
          "required": true,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "code",
          "kind": "slug",
          "label": "Code",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "market",
          "kind": "relation",
          "label": "Market",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "shop_market",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "provider",
          "kind": "enumeration",
          "label": "Provider",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "manual",
              "bank_transfer",
              "cash_on_delivery",
              "card",
              "wallet",
              "bnpl",
              "external"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "provider_code",
          "kind": "text",
          "label": "Provider code",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "capture_mode",
          "kind": "enumeration",
          "label": "Capture",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "automatic",
              "manual"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "requires_authorisation",
          "kind": "boolean",
          "label": "Requires authorisation",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "surcharge",
          "kind": "money",
          "label": "Surcharge",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "instructions",
          "kind": "longText",
          "label": "Customer instructions",
          "description": null,
          "required": false,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "sort_order",
          "kind": "integer",
          "label": "Sort order",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "active",
          "kind": "boolean",
          "label": "Active",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "shop_payment",
      "name": "Payment transaction",
      "pluralName": "Payment transactions",
      "description": "One provider interaction for an order: authorisation, capture, void or refund, with its external reference.",
      "path": "/api/public/v1/shop-payment",
      "localized": false,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Reference",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "order",
          "kind": "relation",
          "label": "Order",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "shop_order",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "method",
          "kind": "relation",
          "label": "Payment method",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "shop_payment_method",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "kind",
          "kind": "enumeration",
          "label": "Kind",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "authorisation",
              "capture",
              "sale",
              "void",
              "refund"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "currency",
          "kind": "currency",
          "label": "Currency",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "amount",
          "kind": "money",
          "label": "Amount",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "state",
          "kind": "enumeration",
          "label": "State",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "pending",
              "authorised",
              "captured",
              "failed",
              "voided",
              "refunded"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "provider_reference",
          "kind": "text",
          "label": "Provider reference",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "processed_at",
          "kind": "dateTime",
          "label": "Processed at",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "failure_reason",
          "kind": "longText",
          "label": "Failure reason",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "food_prep_level",
      "name": "Preparation level",
      "pluralName": "Preparation levels",
      "description": "Doneness / doneness / preparation level (rare, medium, well done, extra crispy) with the core temperature the kitchen cooks to.",
      "path": "/api/public/v1/food-prep-level",
      "localized": false,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Name",
          "description": null,
          "required": true,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "code",
          "kind": "slug",
          "label": "Code",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "applies_to",
          "kind": "multiSelect",
          "label": "Applies to",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "beef",
              "pork",
              "poultry",
              "fish",
              "egg",
              "fries"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "core_temp_c",
          "kind": "decimal",
          "label": "Core temperature (°C)",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "cook_minutes",
          "kind": "integer",
          "label": "Cooking minutes",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "food_safety_warning",
          "kind": "boolean",
          "label": "Needs food-safety warning",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "sort",
          "kind": "sortOrder",
          "label": "Sort",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "description",
          "kind": "longText",
          "label": "Guest-facing description",
          "description": null,
          "required": false,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "food_pricing_policy",
      "name": "Pricing policy",
      "pluralName": "Pricing policies",
      "description": "Commercial rules the configurator reads instead of hard-coded numbers: currency, target and floor margin, labour, packaging, overhead, production waste and price rounding. Scoped by item type, category and channel, highest priority wins.",
      "path": "/api/public/v1/food-pricing-policy",
      "localized": false,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Name",
          "description": null,
          "required": true,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "code",
          "kind": "slug",
          "label": "Code",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "currency",
          "kind": "currency",
          "label": "Currency",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "target_margin_percent",
          "kind": "percent",
          "label": "Target margin %",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "min_margin_percent",
          "kind": "percent",
          "label": "Minimum margin %",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "labour_cost_per_item",
          "kind": "money",
          "label": "Labour cost per item",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "labour_cost_per_minute",
          "kind": "money",
          "label": "Labour cost per preparation minute",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "packaging_cost",
          "kind": "money",
          "label": "Packaging cost",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "overhead_percent",
          "kind": "percent",
          "label": "Overhead % of ingredient cost",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "waste_percent",
          "kind": "percent",
          "label": "Default production waste %",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "rounding",
          "kind": "enumeration",
          "label": "Price rounding",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "none",
              "up_05",
              "up_09",
              "nearest_10",
              "nearest_50",
              "nearest_100"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "item_types",
          "kind": "multiSelect",
          "label": "Applies to item types",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "pizza",
              "burger",
              "steak",
              "pasta",
              "side",
              "drink",
              "dessert",
              "combo"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "categories",
          "kind": "relation",
          "label": "Applies to categories",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "food_menu_category",
            "cardinality": "manyToMany"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "channels",
          "kind": "multiSelect",
          "label": "Applies to channels",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "dine_in",
              "takeaway",
              "delivery",
              "kiosk",
              "catering"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "priority",
          "kind": "integer",
          "label": "Priority",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "active",
          "kind": "boolean",
          "label": "Active",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "notes",
          "kind": "longText",
          "label": "Notes",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "food_pricing_policy_version",
      "name": "Pricing policy version",
      "pluralName": "Pricing policy versions",
      "description": "Immutable, approved snapshot of a pricing policy. The cost engine prices only from an approved version, so every price breakdown names the exact ruleset (version, checksum, approver) it was produced with. Editing the policy entry creates a new version for review instead of silently repricing the menu.",
      "path": "/api/public/v1/food-pricing-policy-version",
      "localized": false,
      "fields": [
        {
          "name": "code",
          "kind": "slug",
          "label": "Code",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "policy",
          "kind": "relation",
          "label": "Pricing policy",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "food_pricing_policy",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "version",
          "kind": "integer",
          "label": "Version",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "approval_status",
          "kind": "enumeration",
          "label": "Approval status",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "draft",
              "in_review",
              "approved",
              "rejected",
              "retired"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "snapshot",
          "kind": "json",
          "label": "Rule snapshot",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "checksum",
          "kind": "text",
          "label": "Checksum",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "change_note",
          "kind": "longText",
          "label": "Change note",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "submitted_by",
          "kind": "text",
          "label": "Submitted by",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "submitted_at",
          "kind": "dateTime",
          "label": "Submitted at",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "approved_by",
          "kind": "text",
          "label": "Decided by",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "approved_at",
          "kind": "dateTime",
          "label": "Decided at",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "decision_note",
          "kind": "longText",
          "label": "Decision note",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "effective_from",
          "kind": "dateTime",
          "label": "Effective from",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "effective_to",
          "kind": "dateTime",
          "label": "Effective to",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "shop_product",
      "name": "Product",
      "pluralName": "Products",
      "description": "Sellable product with marketing copy, media gallery, pricing and taxonomy.",
      "path": "/api/public/v1/shop-product",
      "localized": true,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Name",
          "description": null,
          "required": true,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "slug",
          "kind": "slug",
          "label": "Slug",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "summary",
          "kind": "longText",
          "label": "Summary",
          "description": null,
          "required": false,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "description",
          "kind": "richText",
          "label": "Description",
          "description": null,
          "required": false,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "gallery",
          "kind": "assetGallery",
          "label": "Gallery",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "brand",
          "kind": "relation",
          "label": "Brand",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "pim_brand",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "category",
          "kind": "relation",
          "label": "Category",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "shop_category",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "tax_class",
          "kind": "relation",
          "label": "Tax class",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "shop_tax_class",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "badges",
          "kind": "multiSelect",
          "label": "Badges",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "new",
              "bestseller",
              "sale",
              "eco",
              "limited"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "prices",
          "kind": "component",
          "label": "Prices",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "shop_price",
            "repeatable": true
          },
          "dynamicZone": null
        },
        {
          "name": "state",
          "kind": "enumeration",
          "label": "Availability",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "draft",
              "available",
              "preorder",
              "discontinued"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "requires_shipping",
          "kind": "boolean",
          "label": "Requires shipping",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "product_category",
      "name": "Product category",
      "pluralName": "Product categories",
      "description": "TMF Category: hierarchical classification of the catalog.",
      "path": "/api/public/v1/product-category",
      "localized": true,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Name",
          "description": null,
          "required": true,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "code",
          "kind": "slug",
          "label": "Code",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "description",
          "kind": "longText",
          "label": "Description",
          "description": null,
          "required": false,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "image",
          "kind": "image",
          "label": "Category image",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "parent",
          "kind": "relation",
          "label": "Parent category",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "product_category",
            "cardinality": "manyToOne",
            "inverseName": "children"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "is_root",
          "kind": "boolean",
          "label": "Root category",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "sort_order",
          "kind": "integer",
          "label": "Sort order",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "lifecycle_status",
          "kind": "relation",
          "label": "Lifecycle status",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "lifecycle_status",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "valid_for",
          "kind": "component",
          "label": "Valid for",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "tmf_validity_period"
          },
          "dynamicZone": null
        },
        {
          "name": "tags",
          "kind": "relation",
          "label": "Tags",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "filter": {
              "field": "scope",
              "value": [
                "category"
              ],
              "operator": "containsAny"
            },
            "target": "content_tag",
            "cardinality": "manyToMany"
          },
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "product_characteristic",
      "name": "Product characteristic",
      "pluralName": "Product characteristics",
      "description": "TMF ProductSpecificationCharacteristic: a reusable product attribute with its allowed values.",
      "path": "/api/public/v1/product-characteristic",
      "localized": false,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Name",
          "description": null,
          "required": true,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "code",
          "kind": "slug",
          "label": "Code",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "description",
          "kind": "longText",
          "label": "Description",
          "description": null,
          "required": false,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "value_type",
          "kind": "enumeration",
          "label": "Value type",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "string",
              "number",
              "boolean",
              "date",
              "dateTime",
              "enum",
              "range",
              "object"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "unit_of_measure",
          "kind": "text",
          "label": "Unit of measure",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "regex",
          "kind": "text",
          "label": "Value pattern (regex)",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "min_cardinality",
          "kind": "integer",
          "label": "Min cardinality",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "max_cardinality",
          "kind": "integer",
          "label": "Max cardinality",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "allowed_values",
          "kind": "component",
          "label": "Allowed values",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "max": 200,
            "target": "tmf_char_value",
            "repeatable": true
          },
          "dynamicZone": null
        },
        {
          "name": "configurable",
          "kind": "boolean",
          "label": "Configurable by customer",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "variant_defining",
          "kind": "boolean",
          "label": "Variant defining",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "extensible",
          "kind": "boolean",
          "label": "Extensible",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "category",
          "kind": "relation",
          "label": "Category",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "product_category",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "tags",
          "kind": "relation",
          "label": "Tags",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "filter": {
              "field": "scope",
              "value": [
                "characteristic"
              ],
              "operator": "containsAny"
            },
            "target": "content_tag",
            "cardinality": "manyToMany"
          },
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "product_offering",
      "name": "Product offering",
      "pluralName": "Product offerings",
      "description": "TMF ProductOffering: the commercial packaging of a specification for a market.",
      "path": "/api/public/v1/product-offering",
      "localized": true,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Name",
          "description": null,
          "required": true,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "code",
          "kind": "slug",
          "label": "Code",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "description",
          "kind": "richText",
          "label": "Description",
          "description": null,
          "required": false,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "specification",
          "kind": "relation",
          "label": "Product specification",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "product_specification",
            "cardinality": "manyToOne",
            "inverseName": "offerings"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "variants",
          "kind": "relation",
          "label": "Offered variants",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "product_variant",
            "dependsOn": {
              "field": "specification",
              "targetField": "specification"
            },
            "cardinality": "manyToMany"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "prices",
          "kind": "component",
          "label": "Prices",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "max": 20,
            "target": "tmf_price",
            "repeatable": true
          },
          "dynamicZone": null
        },
        {
          "name": "is_sellable",
          "kind": "boolean",
          "label": "Sellable",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "channels",
          "kind": "multiSelect",
          "label": "Sales channels",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "web",
              "app",
              "retail",
              "callCenter",
              "partner"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "primary_market",
          "kind": "country",
          "label": "Primary market",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "lifecycle_status",
          "kind": "relation",
          "label": "Lifecycle status",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "lifecycle_status",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "valid_for",
          "kind": "component",
          "label": "Valid for",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "tmf_validity_period"
          },
          "dynamicZone": null
        },
        {
          "name": "categories",
          "kind": "relation",
          "label": "Categories",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "product_category",
            "cardinality": "manyToMany"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "tags",
          "kind": "relation",
          "label": "Tags",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "filter": {
              "field": "scope",
              "value": [
                "offering"
              ],
              "operator": "containsAny"
            },
            "target": "content_tag",
            "cardinality": "manyToMany"
          },
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "product_specification",
      "name": "Product specification",
      "pluralName": "Product specifications",
      "description": "TMF ProductSpecification: the technical definition of a product.",
      "path": "/api/public/v1/product-specification",
      "localized": true,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Name",
          "description": null,
          "required": true,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "code",
          "kind": "slug",
          "label": "Code",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "product_number",
          "kind": "text",
          "label": "Product number",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "brand",
          "kind": "text",
          "label": "Brand",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "description",
          "kind": "richText",
          "label": "Description",
          "description": null,
          "required": false,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "attachments",
          "kind": "assetGallery",
          "label": "Attachments",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "characteristics",
          "kind": "relation",
          "label": "Characteristics",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "product_characteristic",
            "cardinality": "manyToMany"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "is_bundle",
          "kind": "boolean",
          "label": "Bundle",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "bundled_specifications",
          "kind": "relation",
          "label": "Bundled specifications",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "product_specification",
            "cardinality": "manyToMany"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "lifecycle_status",
          "kind": "relation",
          "label": "Lifecycle status",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "lifecycle_status",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "version",
          "kind": "text",
          "label": "Specification version",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "valid_for",
          "kind": "component",
          "label": "Valid for",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "tmf_validity_period"
          },
          "dynamicZone": null
        },
        {
          "name": "categories",
          "kind": "relation",
          "label": "Categories",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "product_category",
            "cardinality": "manyToMany"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "tags",
          "kind": "relation",
          "label": "Tags",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "filter": {
              "field": "scope",
              "value": [
                "specification"
              ],
              "operator": "containsAny"
            },
            "target": "content_tag",
            "cardinality": "manyToMany"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "external_id",
          "kind": "text",
          "label": "External ID",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "product_variant",
      "name": "Product variant",
      "pluralName": "Product variants",
      "description": "Sellable variant of a specification, defined by its characteristic values.",
      "path": "/api/public/v1/product-variant",
      "localized": false,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Name",
          "description": null,
          "required": true,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "sku",
          "kind": "text",
          "label": "SKU",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "specification",
          "kind": "relation",
          "label": "Product specification",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "product_specification",
            "cardinality": "manyToOne",
            "inverseName": "variants"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "gtin",
          "kind": "barcode",
          "label": "GTIN / EAN",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": {
            "symbology": "ean13"
          },
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "image",
          "kind": "image",
          "label": "Variant image",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "characteristics",
          "kind": "component",
          "label": "Characteristic values",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "max": 50,
            "target": "tmf_variant_characteristic",
            "repeatable": true
          },
          "dynamicZone": null
        },
        {
          "name": "prices",
          "kind": "component",
          "label": "Prices",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "max": 20,
            "target": "tmf_price",
            "repeatable": true
          },
          "dynamicZone": null
        },
        {
          "name": "stock_status",
          "kind": "enumeration",
          "label": "Stock status",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "inStock",
              "lowStock",
              "outOfStock",
              "preorder",
              "discontinued"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "stock_quantity",
          "kind": "integer",
          "label": "Stock quantity",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "min": 0
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "is_default",
          "kind": "boolean",
          "label": "Default variant",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "dimensions",
          "kind": "component",
          "label": "Dimensions",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "tmf_dimensions"
          },
          "dynamicZone": null
        },
        {
          "name": "lifecycle_status",
          "kind": "relation",
          "label": "Lifecycle status",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "lifecycle_status",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "valid_for",
          "kind": "component",
          "label": "Valid for",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "tmf_validity_period"
          },
          "dynamicZone": null
        },
        {
          "name": "tags",
          "kind": "relation",
          "label": "Tags",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "filter": {
              "field": "scope",
              "value": [
                "variant"
              ],
              "operator": "containsAny"
            },
            "target": "content_tag",
            "cardinality": "manyToMany"
          },
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "shop_variant",
      "name": "Product variant",
      "pluralName": "Product variants",
      "description": "Purchasable variation of a product: SKU, options, barcode, stock and weight.",
      "path": "/api/public/v1/shop-variant",
      "localized": false,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Name",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "sku",
          "kind": "text",
          "label": "SKU",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "product",
          "kind": "relation",
          "label": "Product",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "shop_product",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "barcode",
          "kind": "barcode",
          "label": "Barcode / GTIN",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "prices",
          "kind": "component",
          "label": "Prices",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "shop_price",
            "repeatable": true
          },
          "dynamicZone": null
        },
        {
          "name": "stock_quantity",
          "kind": "integer",
          "label": "Stock quantity",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "weight_kg",
          "kind": "decimal",
          "label": "Weight (kg)",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "is_default",
          "kind": "boolean",
          "label": "Default variant",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "chm_channel",
      "name": "Sales channel",
      "pluralName": "Sales channels",
      "description": "Distribution channel (marketplace, OTA, retail, own store) with credentials metadata.",
      "path": "/api/public/v1/chm-channel",
      "localized": false,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Name",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "code",
          "kind": "slug",
          "label": "Code",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "channel_type",
          "kind": "enumeration",
          "label": "Type",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "marketplace",
              "ota",
              "retail",
              "own_store",
              "reseller"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "endpoint",
          "kind": "url",
          "label": "API endpoint",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "currency",
          "kind": "currency",
          "label": "Channel currency",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "market",
          "kind": "country",
          "label": "Market",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "commission_percent",
          "kind": "decimal",
          "label": "Commission %",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "max": 100,
            "min": 0
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "active",
          "kind": "boolean",
          "label": "Active",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "shop_shipping_method",
      "name": "Shipping method",
      "pluralName": "Shipping methods",
      "description": "Delivery option offered in a zone, with price bands and a delivery estimate.",
      "path": "/api/public/v1/shop-shipping-method",
      "localized": true,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Name",
          "description": null,
          "required": true,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "code",
          "kind": "slug",
          "label": "Code",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "zone",
          "kind": "relation",
          "label": "Zone",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "shop_shipping_zone",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "carrier_kind",
          "kind": "enumeration",
          "label": "Kind",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "courier",
              "pickup_point",
              "store_pickup",
              "digital"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "carrier",
          "kind": "text",
          "label": "Carrier",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "rates",
          "kind": "component",
          "label": "Rates",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "shop_shipping_rate",
            "repeatable": true
          },
          "dynamicZone": null
        },
        {
          "name": "tax_class",
          "kind": "relation",
          "label": "Tax class",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "shop_tax_class",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "lead_time_days_min",
          "kind": "integer",
          "label": "Lead time from (days)",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "lead_time_days_max",
          "kind": "integer",
          "label": "Lead time to (days)",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "requires_address",
          "kind": "boolean",
          "label": "Requires shipping address",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "active",
          "kind": "boolean",
          "label": "Active",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "shop_shipping_zone",
      "name": "Shipping zone",
      "pluralName": "Shipping zones",
      "description": "Group of countries served by the same shipping methods.",
      "path": "/api/public/v1/shop-shipping-zone",
      "localized": false,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Name",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "code",
          "kind": "slug",
          "label": "Code",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "countries",
          "kind": "list",
          "label": "Countries",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": {
            "itemKind": "country"
          },
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "sort_order",
          "kind": "integer",
          "label": "Sort order",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "active",
          "kind": "boolean",
          "label": "Active",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "shop_category",
      "name": "Shop category",
      "pluralName": "Shop categories",
      "description": "Hierarchical storefront category with navigation metadata.",
      "path": "/api/public/v1/shop-category",
      "localized": false,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Name",
          "description": null,
          "required": true,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "slug",
          "kind": "slug",
          "label": "Slug",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "description",
          "kind": "longText",
          "label": "Description",
          "description": null,
          "required": false,
          "localized": true,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "parent",
          "kind": "relation",
          "label": "Parent category",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "shop_category",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "image",
          "kind": "image",
          "label": "Image",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "sort_order",
          "kind": "integer",
          "label": "Sort order",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "show_in_menu",
          "kind": "boolean",
          "label": "Show in menu",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "shop_stock_reservation",
      "name": "Stock reservation",
      "pluralName": "Stock reservations",
      "description": "Temporary hold on variant stock created during checkout and released when it expires.",
      "path": "/api/public/v1/shop-stock-reservation",
      "localized": false,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Reference",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "variant",
          "kind": "relation",
          "label": "Variant",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "shop_variant",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "cart",
          "kind": "relation",
          "label": "Cart",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "shop_cart",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "order",
          "kind": "relation",
          "label": "Order",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "shop_order",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "quantity",
          "kind": "integer",
          "label": "Quantity",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "min": 1
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "state",
          "kind": "enumeration",
          "label": "State",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "held",
              "committed",
              "released",
              "expired"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "expires_at",
          "kind": "dateTime",
          "label": "Expires at",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "content_tag",
      "name": "Tag",
      "pluralName": "Tags",
      "description": "Cross-entity tag catalogue used for grouping and faceted search.",
      "path": "/api/public/v1/content-tag",
      "localized": false,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Name",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "slug",
          "kind": "slug",
          "label": "Slug",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "color",
          "kind": "color",
          "label": "Colour",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "scope",
          "kind": "multiSelect",
          "label": "Applies to",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "category",
              "specification",
              "characteristic",
              "variant",
              "offering"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "description",
          "kind": "longText",
          "label": "Description",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "shop_tax_class",
      "name": "Tax class",
      "pluralName": "Tax classes",
      "description": "Product-level tax grouping (standard, reduced, zero, digital services).",
      "path": "/api/public/v1/shop-tax-class",
      "localized": false,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Name",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "code",
          "kind": "slug",
          "label": "Code",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "description",
          "kind": "longText",
          "label": "Description",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "default_class",
          "kind": "boolean",
          "label": "Default class",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "shop_tax_rate",
      "name": "Tax rate",
      "pluralName": "Tax rates",
      "description": "Percentage charged for one tax class in one country or region, within a validity window.",
      "path": "/api/public/v1/shop-tax-rate",
      "localized": false,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Name",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "tax_class",
          "kind": "relation",
          "label": "Tax class",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": {
            "target": "shop_tax_class",
            "cardinality": "manyToOne"
          },
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "country",
          "kind": "country",
          "label": "Country",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "region",
          "kind": "text",
          "label": "Region / state",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "rate_percent",
          "kind": "decimal",
          "label": "Rate %",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "max": 100,
            "min": 0
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "compound",
          "kind": "boolean",
          "label": "Compound on top of other rates",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "valid_from",
          "kind": "date",
          "label": "Valid from",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "valid_to",
          "kind": "date",
          "label": "Valid to",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "use_case",
      "name": "Use case",
      "pluralName": "Use cases",
      "description": "Structured use case / business case story.",
      "path": "/api/public/v1/use-case",
      "localized": true,
      "fields": [
        {
          "name": "title",
          "kind": "text",
          "label": "Title",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "maxLength": 140
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "slug",
          "kind": "slug",
          "label": "Slug",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "industry",
          "kind": "enumeration",
          "label": "Industry",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "telecom",
              "retail",
              "finance",
              "public-sector",
              "software",
              "manufacturing"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "challengeType",
          "kind": "enumeration",
          "label": "Challenge",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "product-catalog",
              "omnichannel-content",
              "regulated-data",
              "platform-consolidation",
              "developer-experience"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "summary",
          "kind": "longText",
          "label": "Summary",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "maxLength": 320
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "challenge",
          "kind": "markdown",
          "label": "The challenge",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "solution",
          "kind": "markdown",
          "label": "How the platform is used",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "outcomes",
          "kind": "list",
          "label": "Outcomes",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "audience",
          "kind": "text",
          "label": "Primary audience",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "tags",
          "kind": "tags",
          "label": "Tags",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "seo",
          "kind": "component",
          "label": "SEO",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "seo_meta"
          },
          "dynamicZone": null
        }
      ]
    },
    {
      "key": "food_venue",
      "name": "Venue",
      "pluralName": "Venues",
      "description": "Physical restaurant: address, opening hours, kitchen stations and the channels it serves.",
      "path": "/api/public/v1/food-venue",
      "localized": false,
      "fields": [
        {
          "name": "name",
          "kind": "text",
          "label": "Name",
          "description": null,
          "required": true,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "code",
          "kind": "slug",
          "label": "Code",
          "description": null,
          "required": true,
          "localized": false,
          "unique": true,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "address",
          "kind": "component",
          "label": "Address",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "org_postal_address",
            "repeatable": false
          },
          "dynamicZone": null
        },
        {
          "name": "location",
          "kind": "geolocation",
          "label": "Location",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "timezone",
          "kind": "timezone",
          "label": "Timezone",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "phone",
          "kind": "phone",
          "label": "Phone",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "channels",
          "kind": "multiSelect",
          "label": "Channels",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "dine_in",
              "takeaway",
              "delivery",
              "kiosk",
              "catering"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "stations",
          "kind": "multiSelect",
          "label": "Kitchen stations",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": {
            "enumValues": [
              "pizza_oven",
              "grill",
              "fryer",
              "cold",
              "bar",
              "pastry"
            ]
          },
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "seats",
          "kind": "integer",
          "label": "Seats",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "orders_per_hour",
          "kind": "integer",
          "label": "Kitchen capacity (orders/h)",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        },
        {
          "name": "opening_hours",
          "kind": "component",
          "label": "Opening hours",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": {
            "target": "food_service_window",
            "repeatable": true
          },
          "dynamicZone": null
        },
        {
          "name": "active",
          "kind": "boolean",
          "label": "Active",
          "description": null,
          "required": false,
          "localized": false,
          "unique": false,
          "deprecated": false,
          "validation": null,
          "options": null,
          "relation": null,
          "component": null,
          "dynamicZone": null
        }
      ]
    }
  ],
  "meta": {
    "requestId": "req_55c7f50a59464f2eaa7e",
    "generatedAt": "2026-10-09T00:39:29.251Z",
    "components": [
      {
        "key": "food_burger_spec",
        "name": "Burger spec"
      },
      {
        "key": "cta_block",
        "name": "Call to action"
      },
      {
        "key": "shop_cart_line",
        "name": "Cart line"
      },
      {
        "key": "tmf_char_value",
        "name": "Characteristic value"
      },
      {
        "key": "food_combo_line",
        "name": "Combo line"
      },
      {
        "key": "food_combo_spec",
        "name": "Combo spec"
      },
      {
        "key": "food_component_line",
        "name": "Component line"
      },
      {
        "key": "org_contact_point",
        "name": "Contact point"
      },
      {
        "key": "food_drink_spec",
        "name": "Drink spec"
      },
      {
        "key": "shop_fulfillment_line",
        "name": "Fulfilment line"
      },
      {
        "key": "food_group_option",
        "name": "Group option"
      },
      {
        "key": "hero_block",
        "name": "Hero section"
      },
      {
        "key": "food_menu_item_group",
        "name": "Menu item modifier group"
      },
      {
        "key": "food_menu_item_size",
        "name": "Menu item size"
      },
      {
        "key": "food_nutrition",
        "name": "Nutrition"
      },
      {
        "key": "food_option_rule",
        "name": "Option rule"
      },
      {
        "key": "shop_order_line",
        "name": "Order line"
      },
      {
        "key": "tmf_dimensions",
        "name": "Physical dimensions"
      },
      {
        "key": "food_pizza_spec",
        "name": "Pizza spec"
      },
      {
        "key": "org_postal_address",
        "name": "Postal address"
      },
      {
        "key": "shop_price",
        "name": "Price"
      },
      {
        "key": "tmf_price",
        "name": "Product price"
      },
      {
        "key": "food_recipe_line",
        "name": "Recipe line"
      },
      {
        "key": "rich_text_block",
        "name": "Rich text block"
      },
      {
        "key": "web_seo",
        "name": "SEO block"
      },
      {
        "key": "seo_meta",
        "name": "SEO meta"
      },
      {
        "key": "food_service_window",
        "name": "Service window"
      },
      {
        "key": "shop_shipping_rate",
        "name": "Shipping rate"
      },
      {
        "key": "food_size_price",
        "name": "Size price"
      },
      {
        "key": "food_steak_spec",
        "name": "Steak spec"
      },
      {
        "key": "tmf_validity_period",
        "name": "Validity period"
      },
      {
        "key": "tmf_variant_characteristic",
        "name": "Variant characteristic value"
      }
    ],
    "openapi": "/api/public/openapi.json"
  }
}