[
    {
        "name": "id",
        "type": "string",
        "required": true,
        "description": "Id for each select box."
    },
    {
        "name": "name",
        "type": "string",
        "required": true,
        "description": "Name property for the select."
    },
    {
        "name": "items",
        "type": "array",
        "required": true,
        "description": "Array of option items for the select.",
        "params": [
            {
                "name": "value",
                "type": "string",
                "required": false,
                "description": "Value for the option item."
            },
            {
                "name": "text",
                "type": "string",
                "required": true,
                "description": "Text for the option item."
            },
            {
                "name": "selected",
                "type": "boolean",
                "required": false,
                "description": "Sets the option as the selected."
            },
            {
                "name": "disabled",
                "type": "boolean",
                "required": false,
                "description": "Sets the option item as disabled."
            },
            {
                "name": "attributes",
                "type": "object",
                "required": false,
                "description": "HTML attributes (for example data attributes) to add to the option."
            }
        ]
    },
    {
        "name": "describedBy",
        "type": "string",
        "required": false,
        "description": "One or more element IDs to add to the `aria-describedby` attribute, used to provide additional descriptive information for screenreader users."
    },
    {
        "name": "label",
        "type": "object",
        "required": false,
        "description": "Label text or HTML by specifying value for either text or html keys.",
        "isComponent": true
    },
    {
        "name": "hint",
        "type": "object",
        "required": false,
        "description": "Options for the hint component.",
        "isComponent": true
    },
    {
        "name": "errorMessage",
        "type": "object",
        "required": false,
        "description": "Options for the errorMessage component (e.g. text).",
        "isComponent": true
    },
    {
        "name": "formGroup",
        "type": "object",
        "required": false,
        "description": "Options for the form-group wrapper",
        "params": [
            {
                "name": "classes",
                "type": "string",
                "required": false,
                "description": "Classes to add to the form group (e.g. to show error state for the whole group)"
            }
        ]
    },
    {
        "name": "classes",
        "type": "string",
        "required": false,
        "description": "Classes to add to the select."
    },
    {
        "name": "attributes",
        "type": "object",
        "required": false,
        "description": "HTML attributes (for example data attributes) to add to the select."
    }
]