{
  "catalogId": "https://unpkg.com/@lynx-js/genui/a2ui/dist/catalog.json",
  "components": {
    "Button": {
      "properties": {
        "child": {
          "type": "string"
        },
        "variant": {
          "type": "string",
          "enum": [
            "primary",
            "borderless"
          ]
        },
        "isValid": {
          "type": "boolean"
        },
        "action": {
          "oneOf": [
            {
              "type": "object",
              "properties": {
                "event": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "context": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "Context is a JSON object map in v0.9."
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "additionalProperties": false
                }
              },
              "required": [
                "event"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "functionCall": {
                  "type": "object",
                  "properties": {
                    "call": {
                      "type": "string"
                    },
                    "args": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "returnType": {
                      "type": "string",
                      "enum": [
                        "string",
                        "number",
                        "boolean",
                        "object",
                        "array",
                        "any",
                        "void"
                      ]
                    }
                  },
                  "required": [
                    "call",
                    "args"
                  ],
                  "additionalProperties": false
                }
              },
              "required": [
                "functionCall"
              ],
              "additionalProperties": false
            }
          ],
          "description": "v0.9 actions should use the `event` wrapper for server-dispatched clicks."
        },
        "checks": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "condition": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "path": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "path"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "call": {
                        "type": "string"
                      },
                      "args": {
                        "type": "object",
                        "additionalProperties": true
                      },
                      "returnType": {
                        "type": "string",
                        "enum": [
                          "string",
                          "number",
                          "boolean",
                          "object",
                          "array",
                          "any",
                          "void"
                        ]
                      }
                    },
                    "required": [
                      "call",
                      "args"
                    ],
                    "additionalProperties": false
                  }
                ]
              },
              "message": {
                "type": "string"
              }
            },
            "required": [
              "condition",
              "message"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "child",
        "action"
      ],
      "description": "Props for the built-in Button catalog component."
    },
    "Card": {
      "properties": {
        "child": {
          "type": "string"
        },
        "variant": {
          "type": "string",
          "enum": [
            "elevated",
            "outlined",
            "filled",
            "ghost"
          ]
        },
        "weight": {
          "type": "number"
        }
      },
      "required": [
        "child"
      ],
      "description": "Props for the built-in Card catalog component."
    },
    "CheckBox": {
      "properties": {
        "label": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string"
                }
              },
              "required": [
                "path"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "call": {
                  "type": "string"
                },
                "args": {
                  "type": "object",
                  "additionalProperties": true
                },
                "returnType": {
                  "type": "string",
                  "enum": [
                    "string",
                    "number",
                    "boolean",
                    "object",
                    "array",
                    "any",
                    "void"
                  ]
                }
              },
              "required": [
                "call",
                "args"
              ],
              "additionalProperties": false
            }
          ]
        },
        "value": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string"
                }
              },
              "required": [
                "path"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "call": {
                  "type": "string"
                },
                "args": {
                  "type": "object",
                  "additionalProperties": true
                },
                "returnType": {
                  "type": "string",
                  "enum": [
                    "string",
                    "number",
                    "boolean",
                    "object",
                    "array",
                    "any",
                    "void"
                  ]
                }
              },
              "required": [
                "call",
                "args"
              ],
              "additionalProperties": false
            }
          ]
        },
        "checks": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "condition": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "path": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "path"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "call": {
                        "type": "string"
                      },
                      "args": {
                        "type": "object",
                        "additionalProperties": true
                      },
                      "returnType": {
                        "type": "string",
                        "enum": [
                          "string",
                          "number",
                          "boolean",
                          "object",
                          "array",
                          "any",
                          "void"
                        ]
                      }
                    },
                    "required": [
                      "call",
                      "args"
                    ],
                    "additionalProperties": false
                  }
                ]
              },
              "message": {
                "type": "string"
              }
            },
            "required": [
              "condition",
              "message"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "label",
        "value"
      ],
      "description": "Props for the built-in CheckBox catalog component."
    },
    "ChoicePicker": {
      "properties": {
        "label": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string"
                }
              },
              "required": [
                "path"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "call": {
                  "type": "string"
                },
                "args": {
                  "type": "object",
                  "additionalProperties": true
                },
                "returnType": {
                  "type": "string",
                  "enum": [
                    "string",
                    "number",
                    "boolean",
                    "object",
                    "array",
                    "any",
                    "void"
                  ]
                }
              },
              "required": [
                "call",
                "args"
              ],
              "additionalProperties": false
            }
          ],
          "description": "The label for the group of options."
        },
        "variant": {
          "type": "string",
          "enum": [
            "multipleSelection",
            "mutuallyExclusive"
          ],
          "description": "A hint for how the choice picker should be displayed and behave."
        },
        "options": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "label": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "path": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "path"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "call": {
                        "type": "string"
                      },
                      "args": {
                        "type": "object",
                        "additionalProperties": true
                      },
                      "returnType": {
                        "type": "string",
                        "enum": [
                          "string",
                          "number",
                          "boolean",
                          "object",
                          "array",
                          "any",
                          "void"
                        ]
                      }
                    },
                    "required": [
                      "call",
                      "args"
                    ],
                    "additionalProperties": false
                  }
                ],
                "description": "The text to display for this option."
              },
              "value": {
                "type": "string",
                "description": "The stable value associated with this option."
              }
            },
            "required": [
              "label",
              "value"
            ],
            "additionalProperties": false
          },
          "description": "The list of available options to choose from."
        },
        "value": {
          "oneOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string"
                }
              },
              "required": [
                "path"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "call": {
                  "type": "string"
                },
                "args": {
                  "type": "object",
                  "additionalProperties": true
                },
                "returnType": {
                  "type": "string",
                  "enum": [
                    "string",
                    "number",
                    "boolean",
                    "object",
                    "array",
                    "any",
                    "void"
                  ]
                }
              },
              "required": [
                "call",
                "args"
              ],
              "additionalProperties": false
            }
          ],
          "description": "The list of currently selected values."
        },
        "displayStyle": {
          "type": "string",
          "enum": [
            "checkbox",
            "chips"
          ],
          "description": "The display style of the component."
        },
        "filterable": {
          "type": "boolean",
          "description": "If true, displays a search input to filter the options."
        },
        "checks": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "condition": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "path": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "path"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "call": {
                        "type": "string"
                      },
                      "args": {
                        "type": "object",
                        "additionalProperties": true
                      },
                      "returnType": {
                        "type": "string",
                        "enum": [
                          "string",
                          "number",
                          "boolean",
                          "object",
                          "array",
                          "any",
                          "void"
                        ]
                      }
                    },
                    "required": [
                      "call",
                      "args"
                    ],
                    "additionalProperties": false
                  }
                ],
                "description": "The condition that indicates whether the check passes."
              },
              "message": {
                "type": "string",
                "description": "The error message to display if the check fails."
              }
            },
            "required": [
              "condition",
              "message"
            ],
            "additionalProperties": false
          },
          "description": "A list of checks to perform."
        }
      },
      "required": [
        "options",
        "value"
      ],
      "description": "Props for the built-in ChoicePicker catalog component."
    },
    "Column": {
      "properties": {
        "children": {
          "oneOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "object",
              "properties": {
                "componentId": {
                  "type": "string"
                },
                "path": {
                  "type": "string"
                }
              },
              "required": [
                "componentId",
                "path"
              ],
              "additionalProperties": false
            }
          ],
          "description": "Static child IDs array or template object."
        },
        "align": {
          "type": "string",
          "enum": [
            "start",
            "center",
            "end",
            "stretch"
          ]
        },
        "justify": {
          "type": "string",
          "enum": [
            "start",
            "center",
            "end",
            "stretch",
            "spaceBetween",
            "spaceAround",
            "spaceEvenly"
          ]
        }
      },
      "required": [
        "children"
      ],
      "description": "Props for the built-in Column catalog component."
    },
    "DateTimeInput": {
      "properties": {
        "value": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string"
                }
              },
              "required": [
                "path"
              ],
              "additionalProperties": false
            }
          ],
          "description": "The current date/time value. Typically bound to a data path."
        },
        "label": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string"
                }
              },
              "required": [
                "path"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "call": {
                  "type": "string"
                },
                "args": {
                  "type": "object",
                  "additionalProperties": true
                },
                "returnType": {
                  "type": "string",
                  "enum": [
                    "string",
                    "number",
                    "boolean",
                    "object",
                    "array",
                    "any",
                    "void"
                  ]
                }
              },
              "required": [
                "call",
                "args"
              ],
              "additionalProperties": false
            }
          ],
          "description": "The text label for the input field."
        },
        "enableDate": {
          "type": "boolean",
          "description": "Whether to show the date picker."
        },
        "enableTime": {
          "type": "boolean",
          "description": "Whether to show the time picker."
        },
        "outputFormat": {
          "type": "string",
          "description": "Format string for the output value. Supports YYYY, MM, DD, HH, and mm."
        },
        "min": {
          "type": "string",
          "description": "Minimum allowed date/time value."
        },
        "max": {
          "type": "string",
          "description": "Maximum allowed date/time value."
        },
        "checks": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "condition": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "path": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "path"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "call": {
                        "type": "string"
                      },
                      "args": {
                        "type": "object",
                        "additionalProperties": true
                      },
                      "returnType": {
                        "type": "string",
                        "enum": [
                          "string",
                          "number",
                          "boolean",
                          "object",
                          "array",
                          "any",
                          "void"
                        ]
                      }
                    },
                    "required": [
                      "call",
                      "args"
                    ],
                    "additionalProperties": false
                  }
                ],
                "description": "The condition that indicates whether the check passes."
              },
              "message": {
                "type": "string",
                "description": "The error message to display if the check fails."
              }
            },
            "required": [
              "condition",
              "message"
            ],
            "additionalProperties": false
          },
          "description": "A list of checks to perform."
        }
      },
      "required": [
        "value"
      ],
      "description": "Props for the built-in DateTimeInput catalog component."
    },
    "Divider": {
      "properties": {
        "axis": {
          "type": "string",
          "enum": [
            "horizontal",
            "vertical"
          ]
        }
      },
      "required": [],
      "description": "Props for the built-in Divider catalog component."
    },
    "Icon": {
      "properties": {
        "name": {
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "account_circle"
              ]
            },
            {
              "type": "string",
              "enum": [
                "add"
              ]
            },
            {
              "type": "string",
              "enum": [
                "arrow_back"
              ]
            },
            {
              "type": "string",
              "enum": [
                "arrow_forward"
              ]
            },
            {
              "type": "string",
              "enum": [
                "camera"
              ]
            },
            {
              "type": "string",
              "enum": [
                "check"
              ]
            },
            {
              "type": "string",
              "enum": [
                "close"
              ]
            },
            {
              "type": "string",
              "enum": [
                "delete"
              ]
            },
            {
              "type": "string",
              "enum": [
                "edit"
              ]
            },
            {
              "type": "string",
              "enum": [
                "error"
              ]
            },
            {
              "type": "string",
              "enum": [
                "favorite"
              ]
            },
            {
              "type": "string",
              "enum": [
                "help"
              ]
            },
            {
              "type": "string",
              "enum": [
                "home"
              ]
            },
            {
              "type": "string",
              "enum": [
                "info"
              ]
            },
            {
              "type": "string",
              "enum": [
                "location_on"
              ]
            },
            {
              "type": "string",
              "enum": [
                "lock"
              ]
            },
            {
              "type": "string",
              "enum": [
                "mail"
              ]
            },
            {
              "type": "string",
              "enum": [
                "menu"
              ]
            },
            {
              "type": "string",
              "enum": [
                "more_vert"
              ]
            },
            {
              "type": "string",
              "enum": [
                "pause"
              ]
            },
            {
              "type": "string",
              "enum": [
                "person"
              ]
            },
            {
              "type": "string",
              "enum": [
                "play_arrow"
              ]
            },
            {
              "type": "string",
              "enum": [
                "refresh"
              ]
            },
            {
              "type": "string",
              "enum": [
                "search"
              ]
            },
            {
              "type": "string",
              "enum": [
                "send"
              ]
            },
            {
              "type": "string",
              "enum": [
                "settings"
              ]
            },
            {
              "type": "string",
              "enum": [
                "share"
              ]
            },
            {
              "type": "string",
              "enum": [
                "star"
              ]
            },
            {
              "type": "string",
              "enum": [
                "warning"
              ]
            },
            {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string"
                }
              },
              "required": [
                "path"
              ],
              "additionalProperties": false
            }
          ],
          "description": "Google Material icon ligature name, e.g. \"info\", \"account_circle\", \"arrow_back\"."
        },
        "size": {
          "type": "string",
          "enum": [
            "sm",
            "md",
            "lg"
          ]
        },
        "color": {
          "type": "string",
          "enum": [
            "primary",
            "muted",
            "inherit"
          ]
        }
      },
      "required": [
        "name"
      ],
      "description": "Props for the built-in Icon catalog component."
    },
    "Image": {
      "properties": {
        "url": {
          "type": "string",
          "description": "Image URL or path binding."
        },
        "fit": {
          "type": "string",
          "enum": [
            "contain",
            "cover",
            "fill",
            "none",
            "scale-down"
          ]
        },
        "mode": {
          "type": "string",
          "enum": [
            "center",
            "scaleToFill",
            "aspectFit",
            "aspectFill"
          ]
        },
        "variant": {
          "type": "string",
          "enum": [
            "icon",
            "avatar",
            "smallFeature",
            "mediumFeature",
            "largeFeature",
            "header"
          ]
        },
        "weight": {
          "type": "number"
        }
      },
      "required": [
        "url"
      ],
      "description": "Props for the built-in Image catalog component."
    },
    "LazyComponent": {
      "properties": {
        "url": {
          "type": "string",
          "description": "URL of a ReactLynx standalone lazy bundle. The bundle must default-export a React component. Used by native Lynx rendering."
        },
        "webUrl": {
          "type": "string",
          "description": "Optional URL of the web lazy bundle. Lynx for Web uses this instead of `url`; when omitted, web rendering shows a fallback that asks the user to scan the native preview QR code on a mobile device."
        },
        "sourceData": {
          "oneOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": true
              }
            }
          ],
          "description": "Data passed to the lazy bundle component as `sourceData`."
        },
        "fallbackText": {
          "type": "string",
          "description": "Optional text shown while the lazy bundle is loading."
        }
      },
      "required": [
        "url"
      ]
    },
    "LineChart": {
      "properties": {
        "labels": {
          "oneOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string"
                }
              },
              "required": [
                "path"
              ],
              "additionalProperties": false
            }
          ],
          "description": "Category labels shown along the x axis."
        },
        "series": {
          "oneOf": [
            {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "values": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  },
                  "color": {
                    "type": "string"
                  }
                },
                "required": [
                  "name",
                  "values"
                ],
                "additionalProperties": false
              }
            },
            {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string"
                }
              },
              "required": [
                "path"
              ],
              "additionalProperties": false
            }
          ],
          "description": "One or more line series to render over the shared labels."
        },
        "variant": {
          "type": "string",
          "enum": [
            "linear",
            "natural",
            "step"
          ]
        },
        "xLabel": {
          "type": "string"
        },
        "yLabel": {
          "type": "string"
        },
        "showGrid": {
          "type": "boolean"
        },
        "showLegend": {
          "type": "boolean"
        },
        "height": {
          "type": "number"
        }
      },
      "required": [
        "labels",
        "series"
      ],
      "description": "Props for the built-in LineChart catalog component."
    },
    "List": {
      "properties": {
        "children": {
          "oneOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "object",
              "properties": {
                "componentId": {
                  "type": "string"
                },
                "path": {
                  "type": "string"
                }
              },
              "required": [
                "componentId",
                "path"
              ],
              "additionalProperties": false
            }
          ],
          "description": "Static child IDs array or template object."
        },
        "direction": {
          "type": "string",
          "enum": [
            "horizontal",
            "vertical"
          ]
        },
        "align": {
          "type": "string",
          "enum": [
            "start",
            "center",
            "end",
            "stretch"
          ]
        }
      },
      "required": [
        "children"
      ],
      "description": "Props for the built-in List catalog component."
    },
    "Loading": {
      "properties": {
        "variant": {
          "type": "string",
          "enum": [
            "inline",
            "block"
          ],
          "description": "Visual density for the skeleton placeholder."
        }
      },
      "required": [],
      "description": "Props for the built-in Loading catalog component."
    },
    "Modal": {
      "properties": {
        "trigger": {
          "type": "string",
          "description": "The ID of the component that opens the modal when interacted with."
        },
        "content": {
          "type": "string",
          "description": "The ID of the component to display inside the modal."
        }
      },
      "required": [
        "trigger",
        "content"
      ],
      "description": "Props for the built-in Modal catalog component."
    },
    "PieChart": {
      "properties": {
        "data": {
          "oneOf": [
            {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "value": {
                    "type": "number"
                  },
                  "color": {
                    "type": "string"
                  }
                },
                "required": [
                  "name",
                  "value"
                ],
                "additionalProperties": false
              }
            },
            {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string"
                }
              },
              "required": [
                "path"
              ],
              "additionalProperties": false
            }
          ],
          "description": "Pie slices to render."
        },
        "variant": {
          "type": "string",
          "enum": [
            "pie",
            "donut"
          ],
          "description": "Render the chart as a flat pie or a donut."
        },
        "title": {
          "type": "string",
          "description": "Optional title shown above the chart."
        },
        "subtitle": {
          "type": "string",
          "description": "Optional subtitle shown under the title."
        },
        "showLegend": {
          "type": "boolean",
          "description": "Show the legend below the chart."
        },
        "showPercentages": {
          "type": "boolean",
          "description": "Show percentage values in the legend."
        },
        "height": {
          "type": "number",
          "description": "Chart height in pixels."
        },
        "paddingAngle": {
          "type": "number",
          "description": "Padding angle between slices, in degrees."
        },
        "colors": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Custom color palette for the slices."
        }
      },
      "required": [
        "data"
      ],
      "description": "Props for the built-in PieChart catalog component."
    },
    "RadioGroup": {
      "properties": {
        "items": {
          "oneOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string"
                }
              },
              "required": [
                "path"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "call": {
                  "type": "string"
                },
                "args": {
                  "type": "object",
                  "additionalProperties": true
                },
                "returnType": {
                  "type": "string",
                  "enum": [
                    "string",
                    "number",
                    "boolean",
                    "object",
                    "array",
                    "any",
                    "void"
                  ]
                }
              },
              "required": [
                "call",
                "args"
              ],
              "additionalProperties": false
            }
          ],
          "description": "The list of string options to display."
        },
        "value": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string"
                }
              },
              "required": [
                "path"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "call": {
                  "type": "string"
                },
                "args": {
                  "type": "object",
                  "additionalProperties": true
                },
                "returnType": {
                  "type": "string",
                  "enum": [
                    "string",
                    "number",
                    "boolean",
                    "object",
                    "array",
                    "any",
                    "void"
                  ]
                }
              },
              "required": [
                "call",
                "args"
              ],
              "additionalProperties": false
            }
          ],
          "description": "The currently selected value."
        },
        "usageHint": {
          "type": "string",
          "enum": [
            "default",
            "card",
            "row"
          ],
          "description": "A hint for the visual style of the radio group."
        },
        "checks": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "condition": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "path": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "path"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "call": {
                        "type": "string"
                      },
                      "args": {
                        "type": "object",
                        "additionalProperties": true
                      },
                      "returnType": {
                        "type": "string",
                        "enum": [
                          "string",
                          "number",
                          "boolean",
                          "object",
                          "array",
                          "any",
                          "void"
                        ]
                      }
                    },
                    "required": [
                      "call",
                      "args"
                    ],
                    "additionalProperties": false
                  }
                ]
              },
              "message": {
                "type": "string"
              }
            },
            "required": [
              "condition",
              "message"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "items",
        "value"
      ],
      "description": "Props for the built-in RadioGroup catalog component."
    },
    "Row": {
      "properties": {
        "children": {
          "oneOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "object",
              "properties": {
                "componentId": {
                  "type": "string"
                },
                "path": {
                  "type": "string"
                }
              },
              "required": [
                "componentId",
                "path"
              ],
              "additionalProperties": false
            }
          ],
          "description": "Static child IDs array or template object."
        },
        "justify": {
          "type": "string",
          "enum": [
            "start",
            "center",
            "end",
            "stretch",
            "spaceBetween",
            "spaceAround",
            "spaceEvenly"
          ]
        },
        "align": {
          "type": "string",
          "enum": [
            "start",
            "center",
            "end",
            "stretch"
          ]
        }
      },
      "required": [
        "children"
      ],
      "description": "Props for the built-in Row catalog component."
    },
    "Slider": {
      "properties": {
        "label": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string"
                }
              },
              "required": [
                "path"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "call": {
                  "type": "string"
                },
                "args": {
                  "type": "object",
                  "additionalProperties": true
                },
                "returnType": {
                  "type": "string",
                  "enum": [
                    "string",
                    "number",
                    "boolean",
                    "object",
                    "array",
                    "any",
                    "void"
                  ]
                }
              },
              "required": [
                "call",
                "args"
              ],
              "additionalProperties": false
            }
          ],
          "description": "The label for the slider."
        },
        "min": {
          "type": "number",
          "description": "The minimum value of the slider."
        },
        "max": {
          "type": "number",
          "description": "The maximum value of the slider."
        },
        "value": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string"
                }
              },
              "required": [
                "path"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "call": {
                  "type": "string"
                },
                "args": {
                  "type": "object",
                  "additionalProperties": true
                },
                "returnType": {
                  "type": "string",
                  "enum": [
                    "string",
                    "number",
                    "boolean",
                    "object",
                    "array",
                    "any",
                    "void"
                  ]
                }
              },
              "required": [
                "call",
                "args"
              ],
              "additionalProperties": false
            }
          ],
          "description": "The current value of the slider."
        },
        "checks": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "condition": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "path": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "path"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "call": {
                        "type": "string"
                      },
                      "args": {
                        "type": "object",
                        "additionalProperties": true
                      },
                      "returnType": {
                        "type": "string",
                        "enum": [
                          "string",
                          "number",
                          "boolean",
                          "object",
                          "array",
                          "any",
                          "void"
                        ]
                      }
                    },
                    "required": [
                      "call",
                      "args"
                    ],
                    "additionalProperties": false
                  }
                ],
                "description": "The condition that indicates whether the check passes."
              },
              "message": {
                "type": "string",
                "description": "The error message to display if the check fails."
              }
            },
            "required": [
              "condition",
              "message"
            ],
            "additionalProperties": false
          },
          "description": "A list of checks to perform."
        }
      },
      "required": [
        "max",
        "value"
      ],
      "description": "Props for the built-in Slider catalog component."
    },
    "Tabs": {
      "properties": {
        "tabs": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string"
              },
              "child": {
                "type": "string"
              }
            },
            "required": [
              "title",
              "child"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "tabs"
      ],
      "description": "Props for the built-in Tabs catalog component."
    },
    "Text": {
      "properties": {
        "text": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string"
                }
              },
              "required": [
                "path"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "call": {
                  "type": "string"
                },
                "args": {
                  "type": "object",
                  "additionalProperties": true
                },
                "returnType": {
                  "type": "string",
                  "enum": [
                    "string",
                    "number",
                    "boolean",
                    "object",
                    "array",
                    "any",
                    "void"
                  ]
                }
              },
              "required": [
                "call",
                "args"
              ],
              "additionalProperties": false
            }
          ],
          "description": "Literal text, path binding, or function call."
        },
        "variant": {
          "type": "string",
          "enum": [
            "h1",
            "h2",
            "h3",
            "h4",
            "h5",
            "caption",
            "body",
            "markdown"
          ]
        },
        "emphasis": {
          "type": "string",
          "enum": [
            "medium",
            "strong"
          ]
        }
      },
      "required": [
        "text"
      ],
      "description": "Props for the built-in Text catalog component."
    },
    "TextField": {
      "properties": {
        "label": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string"
                }
              },
              "required": [
                "path"
              ],
              "additionalProperties": false
            }
          ],
          "description": "The text label for the input field."
        },
        "value": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string"
                }
              },
              "required": [
                "path"
              ],
              "additionalProperties": false
            }
          ],
          "description": "The value of the text field."
        },
        "variant": {
          "type": "string",
          "enum": [
            "number",
            "longText",
            "shortText",
            "obscured"
          ],
          "description": "The type of input field to display."
        },
        "validationRegexp": {
          "type": "string",
          "description": "A regular expression used for client-side validation of the input."
        },
        "checks": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "condition": {
                "oneOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "path": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "path"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "call": {
                        "type": "string"
                      },
                      "args": {
                        "type": "object",
                        "additionalProperties": {
                          "oneOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "object",
                              "properties": {
                                "path": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "path"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      },
                      "returnType": {
                        "type": "string",
                        "enum": [
                          "boolean"
                        ]
                      }
                    },
                    "required": [
                      "call"
                    ],
                    "additionalProperties": false
                  }
                ],
                "description": "The condition that indicates whether the check passes."
              },
              "message": {
                "type": "string",
                "description": "The error message to display if the check fails."
              }
            },
            "required": [
              "condition",
              "message"
            ],
            "additionalProperties": false
          },
          "description": "A list of checks to perform."
        }
      },
      "required": [
        "label"
      ],
      "description": "Props for the built-in TextField catalog component."
    }
  },
  "functions": {
    "required": {
      "type": "object",
      "description": "Checks that the value is not null, undefined, or empty.",
      "properties": {
        "call": {
          "const": "required"
        },
        "args": {
          "type": "object",
          "properties": {
            "value": {
              "description": "The value to check."
            }
          },
          "required": [
            "value"
          ],
          "additionalProperties": false
        },
        "returnType": {
          "const": "boolean"
        }
      },
      "required": [
        "call",
        "args"
      ],
      "unevaluatedProperties": false
    },
    "regex": {
      "type": "object",
      "description": "Checks that the value matches a regular expression string.",
      "properties": {
        "call": {
          "const": "regex"
        },
        "args": {
          "type": "object",
          "properties": {
            "value": {
              "$ref": "common_types.json#/$defs/DynamicString"
            },
            "pattern": {
              "type": "string",
              "description": "The regex pattern to match against."
            }
          },
          "required": [
            "value",
            "pattern"
          ],
          "unevaluatedProperties": false
        },
        "returnType": {
          "const": "boolean"
        }
      },
      "required": [
        "call",
        "args"
      ],
      "unevaluatedProperties": false
    },
    "length": {
      "type": "object",
      "description": "Checks string length constraints.",
      "properties": {
        "call": {
          "const": "length"
        },
        "args": {
          "type": "object",
          "properties": {
            "value": {
              "$ref": "common_types.json#/$defs/DynamicString"
            },
            "min": {
              "type": "integer",
              "minimum": 0,
              "description": "The minimum allowed length."
            },
            "max": {
              "type": "integer",
              "minimum": 0,
              "description": "The maximum allowed length."
            }
          },
          "required": [
            "value"
          ],
          "anyOf": [
            {
              "required": [
                "min"
              ]
            },
            {
              "required": [
                "max"
              ]
            }
          ],
          "unevaluatedProperties": false
        },
        "returnType": {
          "const": "boolean"
        }
      },
      "required": [
        "call",
        "args"
      ],
      "unevaluatedProperties": false
    },
    "numeric": {
      "type": "object",
      "description": "Checks numeric range constraints.",
      "properties": {
        "call": {
          "const": "numeric"
        },
        "args": {
          "type": "object",
          "properties": {
            "value": {
              "$ref": "common_types.json#/$defs/DynamicNumber"
            },
            "min": {
              "type": "number",
              "description": "The minimum allowed value."
            },
            "max": {
              "type": "number",
              "description": "The maximum allowed value."
            }
          },
          "required": [
            "value"
          ],
          "anyOf": [
            {
              "required": [
                "min"
              ]
            },
            {
              "required": [
                "max"
              ]
            }
          ],
          "unevaluatedProperties": false
        },
        "returnType": {
          "const": "boolean"
        }
      },
      "required": [
        "call",
        "args"
      ],
      "unevaluatedProperties": false
    },
    "email": {
      "type": "object",
      "description": "Checks that the value is a valid email address.",
      "properties": {
        "call": {
          "const": "email"
        },
        "args": {
          "type": "object",
          "properties": {
            "value": {
              "$ref": "common_types.json#/$defs/DynamicString"
            }
          },
          "required": [
            "value"
          ],
          "unevaluatedProperties": false
        },
        "returnType": {
          "const": "boolean"
        }
      },
      "required": [
        "call",
        "args"
      ],
      "unevaluatedProperties": false
    },
    "formatString": {
      "type": "object",
      "description": "Performs string interpolation of data model values and other functions in the catalog functions list and returns the resulting string. The value string can contain interpolated expressions in the `${expression}` format. Supported expression types include: JSON Pointer paths to the data model (e.g., `${/absolute/path}` or `${relative/path}`), and client-side function calls (e.g., `${now()}`). Function arguments must be named (e.g., `${formatDate(value:${/currentDate}, format:'MM-dd')}`). To include a literal `${` sequence, escape it as `\\${`.",
      "properties": {
        "call": {
          "const": "formatString"
        },
        "args": {
          "type": "object",
          "properties": {
            "value": {
              "$ref": "common_types.json#/$defs/DynamicString"
            }
          },
          "required": [
            "value"
          ],
          "unevaluatedProperties": false
        },
        "returnType": {
          "const": "string"
        }
      },
      "required": [
        "call",
        "args"
      ],
      "unevaluatedProperties": false
    },
    "formatNumber": {
      "type": "object",
      "description": "Formats a number with the specified grouping and decimal precision.",
      "properties": {
        "call": {
          "const": "formatNumber"
        },
        "args": {
          "type": "object",
          "properties": {
            "value": {
              "$ref": "common_types.json#/$defs/DynamicNumber",
              "description": "The number to format."
            },
            "decimals": {
              "$ref": "common_types.json#/$defs/DynamicNumber",
              "description": "Optional. The number of decimal places to show. Defaults to 0 or 2 depending on locale."
            },
            "grouping": {
              "$ref": "common_types.json#/$defs/DynamicBoolean",
              "description": "Optional. If true, uses locale-specific grouping separators (e.g. '1,000'). If false, returns raw digits (e.g. '1000'). Defaults to true."
            }
          },
          "required": [
            "value"
          ],
          "unevaluatedProperties": false
        },
        "returnType": {
          "const": "string"
        }
      },
      "required": [
        "call",
        "args"
      ],
      "unevaluatedProperties": false
    },
    "formatCurrency": {
      "type": "object",
      "description": "Formats a number as a currency string.",
      "properties": {
        "call": {
          "const": "formatCurrency"
        },
        "args": {
          "type": "object",
          "properties": {
            "value": {
              "$ref": "common_types.json#/$defs/DynamicNumber",
              "description": "The monetary amount."
            },
            "currency": {
              "$ref": "common_types.json#/$defs/DynamicString",
              "description": "The ISO 4217 currency code (e.g., 'USD', 'EUR')."
            },
            "decimals": {
              "$ref": "common_types.json#/$defs/DynamicNumber",
              "description": "Optional. The number of decimal places to show. Defaults to 0 or 2 depending on locale."
            },
            "grouping": {
              "$ref": "common_types.json#/$defs/DynamicBoolean",
              "description": "Optional. If true, uses locale-specific grouping separators (e.g. '1,000'). If false, returns raw digits (e.g. '1000'). Defaults to true."
            }
          },
          "required": [
            "currency",
            "value"
          ],
          "unevaluatedProperties": false
        },
        "returnType": {
          "const": "string"
        }
      },
      "required": [
        "call",
        "args"
      ],
      "unevaluatedProperties": false
    },
    "formatDate": {
      "type": "object",
      "description": "Formats a timestamp into a string using a pattern.",
      "properties": {
        "call": {
          "const": "formatDate"
        },
        "args": {
          "type": "object",
          "properties": {
            "value": {
              "$ref": "common_types.json#/$defs/DynamicValue",
              "description": "The date to format."
            },
            "format": {
              "$ref": "common_types.json#/$defs/DynamicString",
              "description": "A Unicode TR35 date pattern string.\n\nToken Reference:\n- Year: 'yy' (26), 'yyyy' (2026)\n- Month: 'M' (1), 'MM' (01), 'MMM' (Jan), 'MMMM' (January)\n- Day: 'd' (1), 'dd' (01), 'E' (Tue), 'EEEE' (Tuesday)\n- Hour (12h): 'h' (1-12), 'hh' (01-12) - requires 'a' for AM/PM\n- Hour (24h): 'H' (0-23), 'HH' (00-23) - Military Time\n- Minute: 'mm' (00-59)\n- Second: 'ss' (00-59)\n- Period: 'a' (AM/PM)\n\nExamples:\n- 'MMM dd, yyyy' -> 'Jan 16, 2026'\n- 'HH:mm' -> '14:30' (Military)\n- 'h:mm a' -> '2:30 PM'\n- 'EEEE, d MMMM' -> 'Friday, 16 January'"
            }
          },
          "required": [
            "format",
            "value"
          ],
          "unevaluatedProperties": false
        },
        "returnType": {
          "const": "string"
        }
      },
      "required": [
        "call",
        "args"
      ],
      "unevaluatedProperties": false
    },
    "pluralize": {
      "type": "object",
      "description": "Returns a localized string based on the Common Locale Data Repository (CLDR) plural category of the count (zero, one, two, few, many, other). Requires an 'other' fallback. For English, just use 'one' and 'other'.",
      "properties": {
        "call": {
          "const": "pluralize"
        },
        "args": {
          "type": "object",
          "properties": {
            "value": {
              "$ref": "common_types.json#/$defs/DynamicNumber",
              "description": "The numeric value used to determine the plural category."
            },
            "zero": {
              "$ref": "common_types.json#/$defs/DynamicString",
              "description": "String for the 'zero' category (e.g., 0 items)."
            },
            "one": {
              "$ref": "common_types.json#/$defs/DynamicString",
              "description": "String for the 'one' category (e.g., 1 item)."
            },
            "two": {
              "$ref": "common_types.json#/$defs/DynamicString",
              "description": "String for the 'two' category (used in Arabic, Welsh, etc.)."
            },
            "few": {
              "$ref": "common_types.json#/$defs/DynamicString",
              "description": "String for the 'few' category (e.g., small groups in Slavic languages)."
            },
            "many": {
              "$ref": "common_types.json#/$defs/DynamicString",
              "description": "String for the 'many' category (e.g., large groups in various languages)."
            },
            "other": {
              "$ref": "common_types.json#/$defs/DynamicString",
              "description": "The default/fallback string (used for general plural cases)."
            }
          },
          "required": [
            "value",
            "other"
          ],
          "unevaluatedProperties": false
        },
        "returnType": {
          "const": "string"
        }
      },
      "required": [
        "call",
        "args"
      ],
      "unevaluatedProperties": false
    },
    "openUrl": {
      "type": "object",
      "description": "Opens the specified URL in a browser or handler. This function has no return value.",
      "properties": {
        "call": {
          "const": "openUrl"
        },
        "args": {
          "type": "object",
          "properties": {
            "url": {
              "type": "string",
              "format": "uri",
              "description": "The URL to open."
            }
          },
          "required": [
            "url"
          ],
          "additionalProperties": false
        },
        "returnType": {
          "const": "void"
        }
      },
      "required": [
        "call",
        "args"
      ],
      "unevaluatedProperties": false
    },
    "and": {
      "type": "object",
      "description": "Performs a logical AND operation on a list of boolean values.",
      "properties": {
        "call": {
          "const": "and"
        },
        "args": {
          "type": "object",
          "properties": {
            "values": {
              "type": "array",
              "description": "The list of boolean values to evaluate.",
              "items": {
                "$ref": "common_types.json#/$defs/DynamicBoolean"
              },
              "minItems": 2
            }
          },
          "required": [
            "values"
          ],
          "unevaluatedProperties": false
        },
        "returnType": {
          "const": "boolean"
        }
      },
      "required": [
        "call",
        "args"
      ],
      "unevaluatedProperties": false
    },
    "or": {
      "type": "object",
      "description": "Performs a logical OR operation on a list of boolean values.",
      "properties": {
        "call": {
          "const": "or"
        },
        "args": {
          "type": "object",
          "properties": {
            "values": {
              "type": "array",
              "description": "The list of boolean values to evaluate.",
              "items": {
                "$ref": "common_types.json#/$defs/DynamicBoolean"
              },
              "minItems": 2
            }
          },
          "required": [
            "values"
          ],
          "unevaluatedProperties": false
        },
        "returnType": {
          "const": "boolean"
        }
      },
      "required": [
        "call",
        "args"
      ],
      "unevaluatedProperties": false
    },
    "not": {
      "type": "object",
      "description": "Performs a logical NOT operation on a boolean value.",
      "properties": {
        "call": {
          "const": "not"
        },
        "args": {
          "type": "object",
          "properties": {
            "value": {
              "$ref": "common_types.json#/$defs/DynamicBoolean",
              "description": "The boolean value to negate."
            }
          },
          "required": [
            "value"
          ],
          "unevaluatedProperties": false
        },
        "returnType": {
          "const": "boolean"
        }
      },
      "required": [
        "call",
        "args"
      ],
      "unevaluatedProperties": false
    }
  }
}
