{ "title": "A Statamic Blueprint JSON Schema", "$id": "https://arroba-it.de/statamic.blueprint.schema.json", "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "oneOf": [ { "required": [ "tabs" ] }, { "required": [ "sections" ] } ], "properties": { "title": { "type": "string" }, "tabs": { "title": "The Tabs", "description": "At its most basic, a blueprint has tabs. A tab has a handle, a display name, and an array of sections. Since Statamic 4", "type": "object", "additionalProperties": false, "patternProperties": { "^[A-Za-z_]+?$": { "description": "The handle (name) of a section. This one is on you.", "type": "object", "properties": { "display": { "description": "The displayed text.", "type": "string" }, "sections": { "description": "The Sections of the Tab", "type": "array", "items": { "type": "object", "properties": { "display": { "description": "The displayed text.", "type": "string" }, "instructions": { "description": "Some instructions", "type": "string" }, "fields": { "$ref": "#/$defs/fields" } } }, "additionalItems": false } } } } }, "sections": { "title": "The Sections", "description": "At its most basic, a blueprint has sections. A section has a handle, a display name, and an array of fields. Until Statamic 3", "type": "object", "additionalProperties": false, "patternProperties": { "^[A-Za-z]+?$": { "description": "The handle (name) of a section. This one is on you.", "type": "object", "properties": { "display": { "description": "The displayed text.", "type": "string" }, "fields": { "$ref": "#/$defs/fields" } } } } } }, "$defs": { "fields": { "description": "Here you define the fields of this section.", "type": "array", "uniqueItems": true, "uniqueItemProperties": [ "handle" ], "items": { "type": "object", "properties": { "handle": { "type": "string", "description": "The field's template variable." }, "config": { "type": "object", "properties": { "display": { "type": "string" } } }, "import": { "type": "string" }, "prefix": { "type": "string" }, "field": { "description": "The definition of a single field.", "type": [ "object", "string" ], "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/array" }, { "$ref": "#/$defs/assets" }, { "$ref": "#/$defs/bard" }, { "$ref": "#/$defs/button_group" }, { "$ref": "#/$defs/checkboxes" }, { "$ref": "#/$defs/code" }, { "$ref": "#/$defs/collections" }, { "$ref": "#/$defs/color" }, { "$ref": "#/$defs/date" }, { "$ref": "#/$defs/entries" }, { "$ref": "#/$defs/form" }, { "$ref": "#/$defs/group" }, { "$ref": "#/$defs/grid" }, { "$ref": "#/$defs/hidden" }, { "$ref": "#/$defs/html" }, { "$ref": "#/$defs/integer" }, { "$ref": "#/$defs/link" }, { "$ref": "#/$defs/list" }, { "$ref": "#/$defs/markdown" }, { "$ref": "#/$defs/radio" }, { "$ref": "#/$defs/range" }, { "$ref": "#/$defs/replicator" }, { "$ref": "#/$defs/revealer" }, { "$ref": "#/$defs/section" }, { "$ref": "#/$defs/select" }, { "$ref": "#/$defs/sites" }, { "$ref": "#/$defs/slug" }, { "$ref": "#/$defs/structures" }, { "$ref": "#/$defs/table" }, { "$ref": "#/$defs/taxonomies" }, { "$ref": "#/$defs/taggable" }, { "$ref": "#/$defs/template" }, { "$ref": "#/$defs/terms" }, { "$ref": "#/$defs/text" }, { "$ref": "#/$defs/textarea" }, { "$ref": "#/$defs/time" }, { "$ref": "#/$defs/toggle" }, { "$ref": "#/$defs/user_groups" }, { "$ref": "#/$defs/user_roles" }, { "$ref": "#/$defs/users" }, { "$ref": "#/$defs/video" }, { "$ref": "#/$defs/yaml" } ], "required": [ "type" ] } }, "dependentRequired": { "field": [ "handle" ] } } }, "array": { "description": "This fieldtype is used to manage key: value array data in the right situation.", "type": "object", "properties": { "display": { "$ref": "#/$defs/display" }, "icon": { "$ref": "#/$defs/icon" }, "instructions": { "$ref": "#/$defs/instructions" }, "instructions_position": { "$ref": "#/$defs/instructions_position" }, "listable": { "$ref": "#/$defs/listable" }, "required": { "$ref": "#/$defs/required" }, "localizable": { "$ref": "#/$defs/localizable" }, "validate": { "$ref": "#/$defs/validate" }, "type": { "const": "array" }, "mode": { "type": "string", "enum": [ "dynamic", "keyed" ] }, "keys": { "type": [ "object", "array" ] }, "value_header": { "type": "string" }, "key_header": { "type": "string" } }, "additionalProperties": true }, "assets": { "description": "The assets fieldtype is used to manage and relate files with your entries.", "type": "object", "properties": { "type": { "const": "assets" }, "mode": { "type": "string", "enum": [ "grid", "list" ], "default": "list" }, "container": { "type": "string" }, "folder": { "type": "string" }, "restrict": { "type": "boolean", "default": false }, "allow_uploads": { "type": "boolean", "default": true }, "show_filename": { "type": "boolean", "default": true }, "max_files": { "type": "integer" } }, "additionalProperties": true }, "bard": { "description": "Bard is our recommended fieldtype for creating long form content from the control panel.", "type": "object", "properties": { "type": { "const": "bard" }, "always_show_set_button": { "description": "Enable to always show the \"Add Set\" button.", "type": "boolean", "default": false }, "sets": { "description": "Sets are configurable blocks of fields that can be inserted anywhere in your Bard content.", "type": "object" }, "buttons": { "description": "Choose which buttons to show in the toolbar.", "type": "array", "items": { "type": "string", "uniqueItems": true, "enum": [ "h2", "h3", "bold", "italic", "unorderedlist", "orderedlist", "removeformat", "quote", "anchor", "image", "table" ] } }, "container": { "description": "Choose which asset container to use for this field.", "type": "string" }, "save_html": { "description": "Save HTML instead of structured data. This simplifies but limits control of your template markup.", "type": "boolean", "default": false }, "toolbar_mode": { "description": "Choose which style of toolbar you prefer.", "type": "string", "enum": [ "fixed", "floating" ], "default": "fixed" }, "link_noopener": { "description": "Set rel=\"noopener\" on all links.", "type": "boolean", "default": false }, "link_noreferrer": { "description": "Set rel=\"noreferrer\" on all links.", "type": "boolean", "default": false }, "target_blank": { "description": "Set target=\"_blank\" on all links.", "type": "boolean", "default": false }, "link_collections": { "description": "Entries from these collections will be available in the link selector. Leaving this empty will make all entries available.", "type": "array", "items": { "type": "string" } }, "reading_time": { "description": "Show estimated reading time at the bottom of the field.", "type": "boolean", "default": false }, "fullscreen": { "description": "Enable to toggle into fullscreen mode.", "type": "boolean", "default": true }, "allow_source": { "description": "Allow Source Mode", "type": "boolean", "default": true }, "enable_input_rules": { "description": "Enable Input Rules", "type": "boolean", "default": true }, "enable_paste_rules": { "description": "Enables Markdown-style shortcuts when typing content.", "type": "boolean", "default": true }, "display": { "$ref": "#/$defs/display" }, "instructions": { "$ref": "#/$defs/instructions" }, "instructions_position": { "$ref": "#/$defs/instructions_position" }, "listable": { "$ref": "#/$defs/listable" }, "required": { "$ref": "#/$defs/required" }, "localizable": { "$ref": "#/$defs/localizable" }, "validate": { "$ref": "#/$defs/validate" } }, "additionalProperties": true }, "button_group": { "description": "The button group fieldtype is a multiple choice input where you only get one choice.", "type": "object", "properties": { "type": { "const": "button_group" }, "options": { "description": "Set the array keys and their optional labels.", "type": [ "object", "array" ] }, "default": { "description": "Set the default value.", "type": "string" } }, "additionalProperties": true }, "checkboxes": { "description": "The checkboxes fieldtype is a multiple choice input.", "type": "object", "properties": { "type": { "const": "checkboxes" }, "inline": { "type": "boolean", "default": "false" }, "options": { "type": [ "object", "array" ] }, "default": { "type": "string" } }, "additionalProperties": true }, "code": { "description": "If your content involves code snippets, this is the fieldtype for you.", "type": "object", "properties": { "type": { "const": "code" }, "theme": { "description": "Choose your preferred theme.", "type": "string", "enum": [ "light", "material" ] }, "mode": { "description": "Choose language for syntax highlighting.", "type": "string", "enum": [ "clike", "css", "diff", "go", "haml", "handlebars", "htmlmixed", "less", "markdown", "gfm", "nginx", "text/x-java", "javascript", "jsx", "text/x-objectivec", "php", "python", "ruby", "scss", "shell", "sql", "twig", "vue", "xml", "yaml-frontmatter" ] }, "indent_type": { "description": "Set your preferred type of indentation.", "type": "string", "enum": [ "tabs", "spaces" ] }, "indent_size": { "description": "Set your preferred indentation size (in spaces).", "type": "integer", "default": 4 }, "key_map": { "description": "Choose preferred set of keyboard shortcuts.", "type": "string", "default": "default", "enum": [ "default", "sublime", "vim" ] }, "line_numbers": { "description": "Show Line Numbers", "type": "boolean", "default": true }, "line_wrapping": { "description": "Enable Line Wrapping", "type": "boolean", "default": true } }, "additionalProperties": true }, "collections": { "description": "This fieldtype is used to view and select from a list of Collections.", "type": "object", "properties": { "type": { "const": "collections" }, "max_items": { "description": "Set a maximum number of selectable items.", "type": "integer" }, "mode": { "description": "Choose your preferred UI style.", "$ref": "#/$defs/userSelectModes" } }, "additionalProperties": true }, "color": { "description": "This fieldtype is a highly configurable color picker with simple and advanced UI modes, support for alpha channel, rgba, hsla, hsva, and more.", "type": "object", "properties": { "type": { "const": "color" }, "swatches": { "description": "Pre-define colors that can be selected from a list. Supports all color mode formats.", "type": "array", "uniqueItems": true }, "theme": { "description": "Choose between a classic and a simpler nano (mini) theme. Default: classic.", "type": "string", "enum": [ "classic", "nano" ] }, "lock_opacity": { "description": "Disables the alpha slider, preventing adjustments to opacity.", "type": "boolean", "default": false }, "default_color_mode": { "description": "Set which color mode you wish to be the default. Default: hex.", "type": "string", "default": "HEXA", "enum": [ "HEXA", "RGBA", "HSLA", "HSVA", "CMYK" ] }, "color_modes": { "description": "Choose which color modes you want to enable in the UI. Available choices: hex, rgba, hsla, hsva, and cmyk. Default: hex.", "type": "array", "uniqueItems": true, "default": "hex", "items": { "type": "string", "enum": [ "hex", "rgba", "hsla", "hsva", "cmyk" ] } } }, "additionalProperties": true }, "date": { "description": "Work with dates, times, and ranges with a variety of user interface options that make you really enjoy basically just picking numbers from a table.", "type": "object", "properties": { "columns": { "type": "integer", "description": "Show multiple months at one time, in columns and rows. Default: 1.", "minimum": 1, "default": 1 }, "earliest_date": { "oneOf": [ { "format": "date" }, { "format": "date-time" } ], "type": "string", "default": "1900-01-01", "description": "Set the earliest selectable date in YYYY-MM-DD format." }, "format": { "type": "string", "description": "How the date should be stored, using the PHP date format. Default: 'Y-m-d' or 'Y-m-d H:m'", "default": "'Y-m-d'" }, "full_width": { "type": "boolean", "description": "Enable to stretch the calendar out like Stretch Armstrong, using the maximum amount of available horizontal space. Default: false", "default": false }, "icon": { "type": "string" }, "inline": { "type": "boolean", "description": "Always show the calendar instead of the text input and dropdown UI. Default: false.", "default": false }, "mode": { "type": "string", "description": "Choose between single or range. Range mode disables the time picker. Default: single.", "enum": [ "single", "range" ], "default": "single" }, "rows": { "type": "integer", "description": "Show multiple months at one time, in columns and rows. Default: 1.", "minimum": 1, "default": 1 }, "time_enabled": { "type": "boolean", "description": "Enable/disable the timepicker. Default: false.", "default": false }, "time_required": { "type": "boolean", "description": "Makes the time field visible and non-dismissible. Default: false.", "default": false }, "type": { "type": "string", "const": "date" } }, "additionalProperties": true }, "entries": { "description": "", "type": "object", "properties": { "type": { "const": "entries" }, "max_items": { "$ref": "#/$defs/max_items" }, "mode": { "$ref": "#/$defs/userSelectModes" }, "create": { "type": "boolean", "default": true }, "collections": { "type": "array", "uniqueItems": true, "items": { "type": "string" } } }, "additionalProperties": true }, "form": { "description": "The Form fieldtype is gives your users a way to pick a form to include along with the current entry.", "type": "object", "properties": { "type": { "const": "form" }, "placeholder": { "$ref": "#/$defs/placeholder" }, "max_items": { "type": "integer", "default": 1 } }, "additionalProperties": true }, "group": { "description": "The group fieldtype is a simple container that holds additional fields you would like grouped visually as well as under a parent key.", "type": "object", "properties": { "type": { "const": "group" }, "fields": { "description": "A list of fields within the group.", "type": "array", "items": { "type": "object" } } }, "additionalProperties": true }, "grid": { "description": "The grid fieldtype is a meta fieldtype, a fieldtype that serves as a container for more fieldtypes.", "type": "object", "properties": { "type": { "const": "grid" }, "fields": { "description": "A list of fields, each of which create their own column.", "type": "array", "items": { "type": "object" } }, "mode": { "description": "The Grid is displayed as a table by default. If you have a large number of columns it can get pretty crowded. Choose stacked mode to group rows similar to Replicator. When Sneak Peek is enabled, Grids automatically toggle into stacked mode.", "type": "string", "enum": [ "table", "stacked" ] }, "min_rows": { "description": "The minimum number of required rows.", "type": "integer", "minimum": 0 }, "max_rows": { "description": "The maximum number of rows allowed. Once reached the Add Row button will disappear.", "type": "integer", "minimum": 1 }, "add_row": { "description": "The Add Row button's label.", "type": "string", "minimum": 1 }, "reorderable": { "description": "The minimum number of required rows.", "type": "boolean", "default": true } }, "additionalProperties": true }, "hidden": { "description": "The hidden field is perfect for setting default data when creating new entries.", "type": "object", "properties": { "type": { "const": "hidden" }, "default": { "type": "string" } }, "additionalProperties": true }, "html": { "description": "If you've ever wanted to add a little HTML to your blueprint, this is the way to do it.", "type": "object", "properties": { "type": { "const": "html" }, "html": { "description": "Store whatever HTML you want — it's up to you.", "type": [ "string" ] } }, "additionalProperties": true }, "import": { "description": "Importing Fieldsets. They serve to create reusable sets of fields, just like v2.", "type": "string" }, "integer": { "description": "The integer fieldtype is a text-style input that only accepts integers (numbers) and has increment and decrement controls.", "type": "object", "properties": { "type": { "const": "integer" }, "default": { "type": [ "string", "integer" ] } }, "additionalProperties": true }, "link": { "description": "For when you want to create a link to a URL or entry, this fieldtype is here for you.", "type": "object", "properties": { "type": { "const": "link" }, "collections": { "type": "array" } }, "additionalProperties": true }, "list": { "description": "For when you want to manage a simple YAML list, this fieldtype is here for you.", "type": "object", "properties": { "type": { "const": "list" }, "default": { "type": "array" } }, "additionalProperties": true }, "markdown": { "description": "Write Markdown with the help of formatting buttons, assets integration, fullscreen mode, a Markdown cheatsheet, and HTML preview mode.", "type": "object", "properties": { "type": { "const": "markdown" }, "container": { "description": "Set the name of an asset container to enable browsing, uploading, and inserting assets.", "type": "string" }, "restrict": { "description": "If true, navigation within the asset browser will be disabled. Your users will be restricted to specified the container and folder. Default: false.", "type": "boolean", "default": false }, "automatic_line_breaks": { "description": "Automatically convert line breaks to
tags. Default: true.", "type": "boolean", "default": true }, "automatic_links": { "description": "Automatically links any URLs in the text. Default: false.", "type": "boolean", "default": false }, "escape_markup": { "description": "Escapes inline HTML markup. For example,
will be replaced with <div>. Default: true.", "type": "boolean", "default": false }, "smartypants": { "description": "Automatically convert straight quotes into curly quotes, dashes into en/em-dashes, and other similar text transformations. Default: false.", "type": "boolean", "default": false }, "antlers": { "$ref": "#/$defs/antlers" }, "default": { "description": "Set the default value.", "type": "string" } }, "additionalProperties": true }, "radio": { "description": "The radio fieldtype is a multiple choice input where you only get one choice.", "type": "object", "properties": { "type": { "const": "radio" }, "options": { "description": "Sets of key/value pairs define the values and labels of the radio options.", "type": [ "object", "array" ] }, "inline": { "description": "Show the radio buttons next to each other in a row instead of stacked vertically. Default: false", "type": "boolean", "default": false }, "cast_booleans": { "type": "boolean", "default": false } }, "additionalProperties": true }, "range": { "description": "Range fields let the user choose a numeric value which must be no less than a given value, and no more than another.", "type": "object", "properties": { "type": { "const": "range" }, "step": { "description": "The minimum size between values.", "type": "integer", "minimum": 1, "default": 1 }, "min": { "description": "The minimum, left-most value.", "type": "integer", "minimum": 0, "default": 0 }, "max": { "description": "The maximum, right-most value.", "type": "integer", "default": 100 }, "default": { "description": "Set the default value.", "type": "integer" } }, "additionalProperties": true }, "replicator": { "description": "The Replicator is a meta fieldtype giving you the ability to define sets of fields that you can dynamically piece together in whatever order and arrangement you imagine.", "type": "object", "properties": { "type": { "const": "replicator" } }, "additionalProperties": true }, "revealer": { "description": "The revealer is a simple button that reveals conditional fields without saving any additional data.", "type": "object", "properties": { "type": { "const": "revealer" } }, "additionalProperties": true }, "section": { "description": "", "type": "object", "properties": { "type": { "const": "section" } }, "additionalProperties": true }, "select": { "description": "Give your users a list of options to choose from.", "type": "object", "properties": { "type": { "const": "select" }, "clearable": { "description": "Allow deselecting any chosen option and making null a possible value. Default: false.", "type": "boolean", "default": false }, "options": { "description": "A set of key/value pairs that define the values and labels. If you don't define the keys, the value and label will be the same.\n\n", "type": [ "array", "object" ] }, "placeholder": { "description": "Set the non-selectable placeholder text. Default: none.", "$ref": "#/$defs/placeholder" }, "default": { "description": "Set the default option key. Default: none.", "type": "string" }, "multiple": { "description": "Allow multiple selections. Default: false.", "type": "boolean", "default": false }, "searchable": { "description": "Enable search with suggestions by typing in the select box. Default: true.", "type": "boolean", "default": true }, "taggable": { "description": "Use a \"tag\" style UI when selecting multiples. Default: false.", "type": "boolean", "default": false }, "push_tags": { "description": "Add newly created options to the list. Default: false.", "type": "boolean", "default": false } }, "additionalProperties": true, "required": [ "options" ] }, "sites": { "description": "", "type": "object", "properties": { "type": { "const": "sites" }, "max_items": { "$ref": "#/$defs/max_items" }, "mode": { "$ref": "#/$defs/userSelectModes" } }, "additionalProperties": true }, "slug": { "description": "", "type": "object", "properties": { "type": { "const": "slug" }, "generate": { "type": "boolean", "default": true } }, "additionalProperties": true }, "structures": { "description": "Use this fieldtype to create a one-way relationship with one or more structures in your site.", "type": "object", "properties": { "type": { "const": "structures" }, "max_items": { "$ref": "#/$defs/max_items" }, "mode": { "$ref": "#/$defs/userSelectModes" } }, "additionalProperties": true }, "table": { "description": "This fieldtype gives you a way to create flexible tabular data.", "type": "object", "properties": { "type": { "const": "table" } }, "additionalProperties": true }, "taggable": { "description": "Users can enter “taggable” values, which are formatted automatically into a YAML list format.", "type": "object", "properties": { "type": { "const": "taggable" }, "placeholder": { "$ref": "#/$defs/placeholder" } }, "additionalProperties": true }, "taxonomies": { "description": "", "type": "object", "properties": { "type": { "const": "taxonomies" }, "max_items": { "$ref": "#/$defs/max_items" }, "mode": { "$ref": "#/$defs/userSelectModes" } }, "additionalProperties": true }, "template": { "description": "This is generally used as a \"system\" field to control an entry's template.", "type": "object", "properties": { "type": { "const": "template" }, "hide_partials": { "type": "boolean", "default": true } }, "additionalProperties": true }, "terms": { "description": "Taxonomies are usually relationships established on the collection-configuration level.", "type": "object", "properties": { "type": { "const": "terms" }, "max_items": { "$ref": "#/$defs/max_items" }, "mode": { "$ref": "#/$defs/userSelectModes" }, "create": { "type": "boolean" }, "taxonomies": { "type": "array" } }, "additionalProperties": true }, "text": { "description": "A text field that has the ability to morph into an intergalactic dragon and devour entire planets!", "type": "object", "properties": { "type": { "const": "text" }, "placeholder": { "$ref": "#/$defs/placeholder" }, "input_type": { "type": "string", "default": "text", "enum": [ "color", "date", "email", "hidden", "month", "number", "password", "tel", "text", "time", "url", "week" ] }, "character_limit": { "type": [ "integer" ] }, "antlers": { "$ref": "#/$defs/antlers" }, "default": { "type": "string" }, "append": { "type": "string" }, "prepend": { "type": "string" } }, "additionalProperties": true }, "textarea": { "description": "A long textarea field that functions like a swimming pool for letters and numbers on a hot day.", "type": "object", "properties": { "type": { "const": "textarea" }, "placeholder": { "$ref": "#/$defs/placeholder" }, "character_limit": { "type": [ "integer", "string" ] }, "antlers": { "$ref": "#/$defs/antlers" }, "default": { "type": "string" } }, "additionalProperties": true }, "time": { "description": "The original time field from the set of Kiefer Sutherland's hit drama \"24\".", "type": "object", "properties": { "type": { "const": "time" }, "default": { "type": "string", "pattern": "^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$" } }, "additionalProperties": true }, "toggle": { "description": "A nice little toggle switch generally used to manage settings-type variables.", "type": "object", "properties": { "type": { "const": "toggle" }, "default": { "type": "boolean", "default": false } }, "additionalProperties": true }, "user_groups": { "description": "The User Group fieldtype gives your users a way to pick one or more User Groups to attach to the current entry.", "type": "object", "properties": { "type": { "const": "user_groups" }, "max_items": { "type": [ "integer", "null" ], "minimum": 1, "default": null }, "mode": { "$ref": "#/$defs/userSelectModes" } }, "additionalProperties": true }, "user_roles": { "description": "The User Role fieldtype gives your users a way to pick one or more User Groups to attach to the current entry.", "type": "object", "properties": { "type": { "const": "user_roles" }, "max_items": { "type": [ "integer", "null" ], "minimum": 1, "default": null }, "mode": { "$ref": "#/$defs/userSelectModes" } }, "additionalProperties": true }, "users": { "description": "The most common use for the Users fieldtype is to set the \"author\" for entries, but it's not the only use.", "type": "object", "properties": { "type": { "const": "users" }, "max_items": { "type": [ "integer", "null" ], "minimum": 1, "default": null }, "mode": { "$ref": "#/$defs/userSelectModes" }, "default": { "type": "string", "const": "current" } }, "additionalProperties": true }, "video": { "description": "", "type": "object", "properties": { "type": { "const": "video" }, "placeholder": { "$ref": "#/$defs/placeholder" }, "default": { "type": "string", "format": "url" } }, "additionalProperties": true }, "yaml": { "description": "This field is a code fieldtype that gets saved as YAML instead of a string.", "type": "object", "properties": { "type": { "const": "yaml" }, "default": { "type": [ "object", "string" ] } }, "additionalProperties": true }, "display": { "description": "The label shown above the field.", "type": "string" }, "icon": { "description": "The icon", "type": "string" }, "instructions": { "description": "Shown under the field's display label, like this very text. Markdown is supported.", "type": "string" }, "instructions_position": { "description": "Where the instructions should be positioned relative to the field. Options: Above or Below.", "type": "string", "enum": [ "above", "below" ] }, "listable": { "description": "Controls whether the field should be shown in control panel listings.", "oneOf": [ { "type": "boolean" }, { "type": "string", "pattern": "hidden" } ] }, "required": { "description": "Control whether or not this field is required.\n\n", "type": "boolean" }, "localizable": { "description": "", "type": "boolean" }, "validate": { "description": "The validation rules for that field", "type": "array", "items": { "anyOf": [ { "$ref": "#/$defs/ruleMin" }, { "$ref": "#/$defs/validationRules" } ], "minItems": 1, "uniqueItems": true } }, "ruleMin": { "type": "string", "pattern": "^((accepted|declined|exclude)_if:\\S+,\\S+|(after|before):[\\w\\d_-]+|(after|before)_or_equal:[\\w\\d_-]+|between:\\d+,\\d+|date_equals:[\\w\\d_-]+|date_format:[\\w\\d_-]+|different:\\S+|digits:\\d+|digits_between:\\d+,\\d+|ends_with:\\S+,\\S+|exclude_unless:\\S+,\\S+|exclude_without:\\S+|exists:\\S+,\\S+|[lg]t(e)?:\\S+|in:\\S+,\\S+|in_array:\\S+|(min|max):\\d+|mimetypes:\\S+|mimes:\\S+|multiple_of:\\d+|not_in:\\S+,\\S+|(not_)?regex:\\S+|prohibited_(if|unless):[\\S_]+,\\S+|prohibits:(\\S)+,(\\S)+|required_(if|unless):\\S+,\\d+|required_(with|with_all|without|without_all):\\S+,\\S+|same:\\S+|size:\\d+|starts_with:\\S+,\\S+|unique:\\S+,\\S+|unique_user_value:[\\{(collection|id|site)\\}]+)$" }, "validationRules": { "type": "string", "enum": [ "accepted", "active_url", "required", "alpha", "alpha_dash", "alpha_num", "array", "bail", "boolean", "confirmed", "current_password", "date", "declined", "dimensions", "distinct", "email", "enum", "exclude", "file", "filled", "image", "integer", "ip", "ipv4", "ipv6", "json", "nullable", "numeric", "password", "present", "prohibited", "string", "timezone", "url", "uuid" ] }, "userSelectModes": { "type": "string", "enum": [ "default", "select", "typeahead" ] }, "placeholder": { "type": "string" }, "antlers": { "description": "Enable Antlers parsing in this field's content.", "type": "boolean", "default": false }, "max_items": { "type": "integer", "minimum": 1 } } }