JsonSchema:SchemaBuilder/MetaSchema

JsonSchema:SchemaBuilder/MetaSchema

From Wikisphere
Jump to navigation Jump to search
title"JSON Schema builder"
$id"https://wikisphere.org/wiki/JsonSchema:SchemaBuilder/MetaSchema"
$comment"Meta-schema for defining editable JSON schemas with UI layout controls, custom input widgets, and conditional display logic. Extends standard JSON Schema with MediaWiki-specific widget configurations and layout options."
description"Switch the primary button below to interactively change property type"
x-layout"paged"
x-layout-config
toggletrue
resizeabletrue
$ref"#/definitions/schemaRoot"
type"object"
definitions
newProperty
title"New property"
x-value-converter"newPropertyMeta"
type"object"
required
"name"
"type"
properties
name
title"name"
type"string"
minLength1
type
title"type"
type"string"
enum
"string"
"integer"
"number"
"boolean"
"object"
"array"
"null"
"multiple"
"survey"
controlConfig
x-message
label"Reference: [https://doc.wikimedia.org/mediawiki-core/1.39.5/js/#!/api/OO.ui.FieldLayout OO.ui.FieldLayout]"
x-label-format"wikitext"
type"object"
properties
align
type"string"
description"Text to insert"
enum
"left"
"right"
"top"
"inline"
classes
type"array"
description"The names of the CSS classes to apply to the element"
x-input"OO.ui.TagMultiselectWidget"
items
type"string"
help
type"string"
description"Help text. When help text is specified and helpInline is false, a "help" icon will appear in the upper-right corner of the rendered field; clicking it will display the text in a popup. If helpInline is true, then a subtle description will be shown after the label."
helpInline
type"boolean"
description"Whether or not the help should be inline, or shown when the "help" icon is clicked"
id
type"string"
description"The HTML id attribute used in the rendered tag"
invisibleLabel
type"boolean"
description"Whether the label should be visually hidden (but still accessible to screen-readers)"
label
type"string"
description"The label text"
x-label-template
type"string"
description"label template (overrides label, usually used in conjunction with x-watch)"
text
type"string"
description"Text to insert"
title
type"string"
description"The title text"
uiSchemaItem
description"Defines a UI schema configuration for adding dynamic properties to objects."
type"object"
required
"label"
"schema"
"name"
properties
label
type"string"
description"Display label for the property"
minLength1
examples
"field"
"subitem"
schema
oneOf
type"string"
title"reference"
description"Internal or external reference to the JSON schema definition"
examples
"JsonSchema:SchemaBuilder/Field"
"#/definitions/UISchema"
$ref"#/definitions/typedSchema/object"
title"schema"
tyoe"object"
description"Inline schema"
popup_size
title"popup size"
type"string"
default"medium"
enum
"medium"
"large"
"small"
baseProperties
@comment"Base JSON Schema keywords common to all schema types (excluding multiple-related keywords)"
type"object"
x-default-properties
"type"
"title"
"description"
"x-required"
x-group-properties
specific
"default"
"additionalProperties"
"x-default-properties"
"x-ui-name"
"definitions"
"$defs"
"maxProperties"
"minProperties"
"propertyNames"
"maxLength"
"minLength"
"pattern"
"x-template"
"x-value-formula"
"exclusiveMaximum"
"exclusiveMinimum"
"maximum"
"minimum"
"multipleOf"
"maxContains"
"maxItems"
"minContains"
"minItems"
advanced
"$schema"
"$comment"
"$id"
"$ref"
"contentEncoding"
"contentMediaType"
"deprecated"
"examples"
"readOnly"
"writeOnly"
"x-value-converter"
"x-ui-name"
"x-runtime-only"
"x-create-only"
"x-render-template"
style/UI
"x-collapsible"
"x-no-title"
"x-no-description"
"x-css-class"
"x-css-inline"
"x-show"
"x-hidden"
"x-compact"
"x-padding"
"x-border"
"x-hidden-properties"
properties
const
description"The value must be equal to this constant"
type
type"string"
description"JSON Schema primitive type (string, number, integer, boolean, object, array, null)"
title
type"string"
description"Field title"
x-title-format
type"string"
description"title format"
enum
"text"
"html"
"wikitext"
description
type"string"
x-format"textarea"
description"Description or help text for the field"
x-description-format
type"string"
description"description format"
enum
"text"
"html"
"wikitext"
x-title-template
type"string"
x-format"text"
description"title template (overrides title, usually used in conjunction with x-watch)"
x-description-template
type"string"
x-format"textarea"
description"description template (overrides description, usually used in conjunction with x-watch)"
$comment
type"string"
description"Developer comment - ignored by validation, for documentation purposes"
x-format"textarea"
$ref
x-message
label"Reference to another schema (eg. #definitions/subschema, or JsonSchema:SubSchema, or JsonSchema:SubSchema#definitions/sub-subschema)"
type"warning"
format"uri-reference"
type"string"
description"Reference to another schema definition"
contentEncoding
type"string"
description"Encoding method for string content (e.g., 'base64', 'binary')"
contentMediaType
type"string"
description"MIME type of string content (e.g., 'image/png', 'application/json')"
deprecated
type"boolean"
description"Field is deprecated - show warning to users"
enum
description"The value must be one of these specified values"
type"array"
examples
type"array"
description"Example values demonstrating valid input (not validation keywords)"
items
Empty object
readOnly
type"boolean"
description"Field is read-only and cannot be modified"
writeOnly
type"boolean"
description"Field can be written but not read (e.g., password fields)"
x-runtime-only
type"boolean"
description"Field only used at runtime (e.g., pagename formula)"
x-watch
description"Watched fields for reactive updates. Can be an array of fields, or key/value pairs mapping alias to field name."
oneOf
type"array"
items
type"string"
x-input"OO.ui.TagMultiselectWidget"
type"object"
additionalProperties
type"string"
x-hidden
type
"boolean"
"object"
description"Hide the field from the form UI. Only use the 'DependencyCondition' schema if the visibility should be determined by the actual schema at runtime"
oneOf
type"boolean"
type"object"
$ref"JsonSchema:SchemaBuilder/DependenciesHidden"
x-compact
type"boolean"
description"Hide title, description and error holder, disable border and padding"
x-no-title
type"boolean"
description"Hide title"
x-no-description
type"boolean"
description"Hide description"
x-css-class
type"string"
description"Custom CSS class name to apply to the container"
x-css-inline
type"string"
description"Inline css to apply to the container"
x-dependency
$ref"JsonSchema:SchemaBuilder/Dependencies"
description"Conditional display logic - field only shown when dependencies are met"
x-show
type"boolean"
description"Property will be always visible"
x-required
type"boolean"
x-runtime-onlytrue
x-showtrue
description"Set the property as required (it will be handled within the "required" property in the parent schema)"
x-padding
type"boolean"
description"Force padding to the container"
x-border
type"boolean"
description"Force border to the container"
x-create-only
type"boolean"
description"Property only rendered when creating the form data"
x-render-template
type"string"
description"Template name to be used by the parser function <code>jsonformsrender</code> instead of the computed name"
x-description-format"wikitext"
x-input"mw.widgets.TitleInputWidget"
x-input-config
namespace10
x-data
type"object"
description"Data object to be used in conjunction with converters or enum providers"
additionalPropertiestrue
allOf
description"Schema must be valid against all of the subschemas (logical AND)"
type"array"
items
$ref"#/definitions/schema"
x-layout"tabs_"
oneOf
description"Schema must be valid against exactly one of the subschemas (logical XOR)"
type"array"
items
$ref"#/definitions/schema"
anyOf
description"Schema must be valid against at least one of the subschemas (logical OR)"
type"array"
items
$ref"#/definitions/schema"
x-layout"tabs_"
not
$ref"#/definitions/schema"
description"Schema must NOT be valid against the given schema"
if
$ref"#/definitions/schema"
description"Conditional validation: if this schema validates, then 'then' must validate"
then
$ref"#/definitions/schema"
description"Conditional validation: must validate when 'if' validates"
else
$ref"#/definitions/schema"
description"Conditional validation: must validate when 'if' does NOT validate"
required
"type"
multiple
description"Schema for logical combinations (oneOf, anyOf, allOf, not, if/then/else)."
type"object"
allOf
$ref"#/definitions/baseProperties"
type"object"
properties
type
type"array"
items
type"string"
enum
"string"
"integer"
"boolean"
"number"
"object"
"array"
x-input-config
allowArbitraryfalse
properties
properties
title"Properties"
type"object"
patternProperties
.*
$ref"#/definitions/schema"
x-additional-properties-ui
label"New property"
schema"#/definitions/newProperty"
popup_size"medium"
additionalPropertiestrue
description"User-defined properties with their schemas"
definitions
type"object"
patternProperties
.*
$ref"#/definitions/schema"
description"Reusable schema definitions (alias of $defs)"
$defs
type"object"
patternProperties
.*
$ref"#/definitions/schema"
description"Reusable schema definitions (alias of definitions)"
links
type"array"
x-layout"tabs_"
description"see [https://json-schema.org/draft-06/draft-wright-json-schema-hyperschema-01 draft-wright-json-schema-hyperschema-01]"
x-description-format"wikitext"
items
type"object"
properties
rel
type"string"
description"Link relation type"
href
type"string"
description"URI template for the link"
x-destroy-values-on-switch
type"boolean"
defaultfalse
description"Destroy value on switch"
x-no-validate
type"boolean"
defaultfalse
description"No validate"
x-switch
type"string"
description"Widget for switch"
enum
"OO.ui.ButtonMenuSelectWidget"
"OO.ui.ButtonSelectWidget"
"OO.ui.RadioSelectInputWidget"
"OO.ui.DropdownInputWidget"
default"OO.ui.ButtonSelectWidget"
x-switch-config
type"object"
description"Configuration options passed to the selected input widget"
x-watch"x-switch"
x-message
x-label-template"Using options from <a target="blank" href="{{replace wgArticlePath '$1' 'JsonSchema:SchemaBuilder/InputOptions'}}">JsonSchema:SchemaBuilder/InputOptions</a> (#/definitions/{{x-input}})"
links
rel"describedBy"
href"JsonSchema:SchemaBuilder/InputOptions#/definitions/{{x-switch}}"
string
description"JSON Schema string type definition"
type"object"
allOf
$ref"#/definitions/baseProperties"
properties
type
enum
"string"
const"string"
x-format"hidden"
description"JSON Schema primitive type"
default
type"string"
description"Default string value when not provided"
optionsFrom
type"string"
title"options from"
enum
"inline"
"enum template"
"enum provider"
x-dependency
or
path"x-input"
op"=="
value"OO.ui.DropdownInputWidget"
path"x-input"
op"=="
value"OO.ui.RadioSelectInputWidget"
path"x-input"
op"=="
value"OO.ui.ButtonSelectWidget"
path"x-input"
op"=="
value"OO.ui.ComboBoxInputWidget"
enum
type"array"
items
type"string"
x-input"OO.ui.TagMultiselectWidget"
x-input-config
inputPosition"outline"
description"String must be one of the specified values"
x-dependency
optionsFrom"inline"
x-enum-titles
type"array"
description"Display labels for enum values. Must be the same length as enum array."
items
type"string"
x-input"OO.ui.TagMultiselectWidget"
x-dependency
optionsFrom"inline"
x-enum-titles-format
type"string"
description"description format"
enum
"text"
"html"
"wikitext"
x-dependency
optionsFrom"inline"
x-enum-template
$ref"JsonSchema:SchemaBuilder/EnumTemplate"
description"Dynamic source for enum using templates"
x-dependency
optionsFrom"enum template"
x-enum-provider
type"string"
description"Name of the enum provider to be used in selects. When not a built-in function, must be declared in [[MediaWiki:JsonFormsOptions]] and provide at least a "source" method"
x-description-format"wikitext"
x-input"OO.ui.ComboBoxInputWidget"
enum
"wikiList"
"uGroups"
"slotRoles"
"jsonSlots"
"contentModels"
"jsonSchemas"
x-dependency
optionsFrom"enum provider"
x-enum-provider-config
type"object"
x-watch"x-enum-provider"
links
rel"describedBy"
href"JsonSchema:SchemaBuilder/EnumAutocompleteConfig/{{x-enum-provider}}"
x-dependency
optionsFrom"enum provider"
maxLength
minimum0
type"integer"
description"Maximum string length allowed"
minLength
minimum0
type"integer"
description"Minimum string length required"
pattern
format"regex"
type"string"
description"Regular expression pattern that the string must match"
x-template
type"string"
description"Template string for generating dynamic values (e.g., '{{field1}}-{{field2}}')"
stringOptions
description"UI configuration options specific to string-type fields"
type"object"
if
properties
format
enum
"date-time"
"time"
"date"
"email"
"idn-email"
"hostname"
"idn-hostname"
"ipv4"
"ipv6"
"uri"
"uri-reference"
"iri"
"uri-template"
"json-pointer"
"relative-json-pointer"
"regex"
required
"format"
then
properties
x-format-type
default"default"
required
"x-format-type"
properties
x-format-type
type"string"
enum
"custom"
"default"
default"custom"
x-runtime-onlytrue
description"Selects whether to use standard JSON Schema formats or custom formats"
format
type"string"
default""
enum
"date-time"
"time"
"date"
"email"
"idn-email"
"hostname"
"idn-hostname"
"ipv4"
"ipv6"
"uri"
"uri-reference"
"iri"
"uri-template"
"json-pointer"
"relative-json-pointer"
"regex"
x-dependency
x-format-type"default"
description"Standard JSON Schema format validation"
x-format
type"string"
default"text"
enum
"color"
"json"
"hidden"
"file"
"html"
"markdown"
"month"
"pagename"
"rating"
"tel"
"text"
"textarea"
"tree"
"user"
"url"
"uuid"
"wikitext"
x-dependency
x-format-type"custom"
description"Custom format type"
x-input
x-watch
"format"
"x-format"
x-enum-provider"metaSchemaFormatToInput"
enum_
"autocomplete"
"ColorPicker"
"intl-tel-input"
"JsonEditor"
"JsonForms"
"LookupElement"
"month"
"mw.widgets.DateInputWidget"
"mw.widgets.DateTimeInputWidget"
"mw.widgets.TitleInputWidget"
"mw.widgets.UserInputWidget"
"OO.ui.ButtonSelectWidget"
"OO.ui.ComboBoxInputWidget"
"OO.ui.DropdownInputWidget"
"OO.ui.MultilineTextInputWidget"
"OO.ui.TextInputWidget"
"OO.ui.RadioSelectInputWidget"
"RatingWidget"
"uuid"
"VisualEditor"
"WikiEditor"
x-dependency
or
and
path"x-format"
op"exists"
path"x-format"
op"!="
value""
and
path"format"
op"exists"
path"format"
op"!="
value""
type"string"
default"OO.ui.TextInputWidget"
description"Widget type for string input."
x-input-config
type"object"
x-dependency
and
path"x-input"
op"exists"
path"x-input"
op"!="
value""
@comment"Configuration options passed to the selected input widget"
x-watch"x-input"
x-message
x-label-template"Options' config is determined by the selected input. Using options from <a target="blank" href="{{replace wgArticlePath '$1' 'JsonSchema:SchemaBuilder/InputOptions'}}">JsonSchema:SchemaBuilder/InputOptions</a> (#/definitions/{{x-input}})"
links
rel"describedBy"
href"JsonSchema:SchemaBuilder/InputOptions#/definitions/{{x-input}}"
x-control-config
type"object"
description"Additional control configuration for the string field"
$ref"#/definitions/controlConfig"
x-autocomplete-provider
type"string"
description"Name of the autocomplete provider. When not a built-in function, must be declared in [[MediaWiki:JsonFormsOptions]] and provide at least a "search" method"
x-description-format"wikitext"
x-input"OO.ui.ComboBoxInputWidget"
default""
enum
"wikipedia"
"dawa"
"wikidata"
x-dependency
or
path"x-input"
op"matches"
value"LookupElement"
path"x-input"
op"matches"
value"Autocomplete"
x-autocomplete-provider-config
type"object"
x-dependency
or
path"x-input"
op"matches"
value"LookupElement"
path"x-input"
op"matches"
value"Autocomplete"
x-watch"x-autocomplete-provider"
links
rel"describedBy"
href"JsonSchema:SchemaBuilder/EnumAutocompleteConfig/{{x-autocomplete-provider}}"
x-value-formula
type"string"
description"Post-process value after form submission. Use <value> to print the input value. Can contain wikitext."
stringOptionsMultiselect
description"UI configuration options specific to string-type fields"
type"object"
properties
x-format-type
type"string"
enum
"custom"
"default"
default"custom"
x-runtime-onlytrue
description"Selects whether to use standard JSON Schema formats or custom formats"
x-format
type"string"
enum
"text"
"title"
"user"
"category"
default"text"
x-input
x-watch
"format"
"x-format"
x-enum-provider"metaSchemaArrayFormatToInput"
enum_
"ButtonMultiselectWidget"
"GroupMultiSelectWidget"
"mw.widgets.CategoryMultiselectWidget"
"mw.widgets.TitlesMultiselectWidget"
"mw.widgets.UsersMultiselectWidget"
"OO.ui.CheckboxMultiselectInputWidget"
"OO.ui.MenuTagMultiselectWidget"
"OO.ui.TagMultiselectWidget"
default"OO.ui.TagMultiselectWidget"
type"string"
description"Widget type for string input."
x-input-config
type"object"
x-dependency
and
path"x-input"
op"exists"
path"x-input"
op"!="
value""
description"Configuration options passed to the selected input widget"
x-watch"x-input"
x-message
x-label-template"Using options from <a target="blank" href="{{replace wgArticlePath '$1' 'JsonSchema:SchemaBuilder/InputOptions'}}">JsonSchema:SchemaBuilder/InputOptions</a> (#/definitions/{{x-input}})"
links
rel"describedBy"
href"JsonSchema:SchemaBuilder/InputOptions#/definitions/{{x-input}}"
x-control-config
type"object"
description"Additional control configuration for the string field"
$ref"#/definitions/controlConfig"
x-autocomplete-provider
type"string"
description"Name of the autocomplete provider. When not a built-in function, must be declared in [[MediaWiki:JsonFormsOptions]] and provide at least a "search" method"
x-input"OO.ui.ComboBoxInputWidget"
enum
"wikipedia"
"dawa"
"wikidata"
default""
x-dependency
path"x-input"
op"matches"
value"LookupMultiselect"
x-autocomplete-provider-config
type"object"
x-dependency
path"x-input"
op"matches"
value"LookupMultiselect"
x-watch"x-autocomplete-provider"
links
rel"describedBy"
href"JsonSchema:SchemaBuilder/EnumAutocompleteConfig/{{x-autocomplete-provider}}"
number
description"JSON Schema number type definition"
type"object"
allOf
$ref"#/definitions/baseProperties"
properties
type
enum
"number"
const"number"
x-format"hidden"
description"JSON Schema primitive type"
default
type"number"
description"Default number value when not provided"
enum
type"array"
items
type"number"
x-input"OO.ui.TagMultiselectWidget"
x-input-config
inputPosition"outline"
x-type"number"
description"Number must be one of the specified values"
exclusiveMaximum
type"number"
description"Number must be strictly less than this value"
exclusiveMinimum
type"number"
description"Number must be strictly greater than this value"
maximum
type"number"
description"Number must be less than or equal to this value"
minimum
type"number"
description"Number must be greater than or equal to this value"
multipleOf
type"number"
description"Number must be a multiple of this number"
numberOptions
description"UI configuration options specific to number-type fields"
type"object"
properties
x-format
type"string"
enum
"number"
"range"
default"number"
description"Custom format type"
x-input
enum
"OO.ui.NumberInputWidget"
"RangeWidget"
type"string"
x-dependency
path"x-format"
op"exists"
description"Widget type for number input"
x-input-config
type"object"
x-dependency
and
path"x-input"
op"exists"
path"x-input"
op"!="
value""
description"Configuration options passed to the selected input widget"
x-watch"x-input"
x-message
x-label-template"Using options from <a target="blank" href="{{replace wgArticlePath '$1' 'JsonSchema:SchemaBuilder/InputOptions'}}">JsonSchema:SchemaBuilder/InputOptions</a> (#/definitions/{{x-input}})"
links
rel"describedBy"
href"JsonSchema:SchemaBuilder/InputOptions#/definitions/{{x-input}}"
x-control-config
type"object"
description"Additional control configuration for the number field"
$ref"#/definitions/controlConfig"
numberOptionsMultiselect
description"UI configuration options specific to number-type fields"
type"object"
properties
x-format
type"string"
enum
"number"
default"number"
description"Custom format type"
x-input
enum
"OO.ui.TagMultiselectWidget"
type"string"
x-dependency
path"x-format"
op"exists"
description"Widget type for number input"
x-input-config
type"object"
x-dependency
and
path"x-input"
op"exists"
path"x-input"
op"!="
value""
description"Configuration options passed to the selected input widget"
x-watch"x-input"
x-message
x-label-template"Using options from <a target="blank" href="{{replace wgArticlePath '$1' 'JsonSchema:SchemaBuilder/InputOptions'}}">JsonSchema:SchemaBuilder/InputOptions</a> (#/definitions/{{x-input}})"
links
rel"describedBy"
href"JsonSchema:SchemaBuilder/InputOptions#/definitions/{{x-input}}"
x-control-config
type"object"
description"Additional control configuration for the number field"
$ref"#/definitions/controlConfig"
integer
description"JSON Schema integer type definition"
type"object"
allOf
$ref"#/definitions/baseProperties"
properties
type
enum
"integer"
const"integer"
x-format"hidden"
description"JSON Schema primitive type"
default
type"integer"
description"Default integer value when not provided"
enum
type"array"
items
type"integer"
x-input"OO.ui.TagMultiselectWidget"
x-input-config
inputPosition"outline"
x-type"integer"
description"Integer must be one of the specified values"
exclusiveMaximum
type"number"
description"Integer must be strictly less than this value"
exclusiveMinimum
type"number"
description"Integer must be strictly greater than this value"
maximum
type"number"
description"Integer must be less than or equal to this value"
minimum
type"number"
description"Integer must be greater than or equal to this value"
multipleOf
type"number"
description"Integer must be a multiple of this number"
integerOptions
description"UI configuration options specific to integer-type fields"
type"object"
properties
x-format
type"string"
enum
"number"
"range"
"rating"
default"number"
description"Custom format type"
x-input
x-watch
"x-format"
x-enum-provider"metaSchemaIntegerFormatToInput"
enum_
"OO.ui.NumberInputWidget"
"RangeWidget"
"RatingWidget"
type"string"
x-dependency
path"x-format"
op"exists"
description"Widget type for integer input"
x-input-config
type"object"
x-dependency
and
path"x-input"
op"exists"
path"x-input"
op"!="
value""
description"Configuration options passed to the selected input widget"
x-watch"x-input"
x-message
x-label-template"Using options from <a target="blank" href="{{replace wgArticlePath '$1' 'JsonSchema:SchemaBuilder/InputOptions'}}">JsonSchema:SchemaBuilder/InputOptions</a> (#/definitions/{{x-input}})"
links
rel"describedBy"
href"JsonSchema:SchemaBuilder/InputOptions#/definitions/{{x-input}}"
x-control-config
type"object"
description"Additional control configuration for the input field"
$ref"#/definitions/controlConfig"
integerOptionsMultiselect
description"UI configuration options specific to integer-type fields"
type"object"
properties
x-format
type"string"
enum
"number"
default"number"
description"Custom format type"
x-input
enum
"OO.ui.TagMultiselectWidget"
type"string"
x-dependency
path"x-format"
op"exists"
description"Widget type for integer input"
x-input-config
type"object"
x-dependency
and
path"x-input"
op"exists"
path"x-input"
op"!="
value""
description"Configuration options passed to the selected input widget"
x-watch"x-input"
x-message
x-label-template"Using options from <a target="blank" href="{{replace wgArticlePath '$1' 'JsonSchema:SchemaBuilder/InputOptions'}}">JsonSchema:SchemaBuilder/InputOptions</a> (#/definitions/{{x-input}})"
links
rel"describedBy"
href"JsonSchema:SchemaBuilder/InputOptions#/definitions/{{x-input}}"
x-control-config
type"object"
description"Additional control configuration for the input field"
$ref"#/definitions/controlConfig"
boolean
description"JSON Schema boolean type definition"
type"object"
allOf
$ref"#/definitions/baseProperties"
properties
type
enum
"boolean"
const"boolean"
x-format"hidden"
description"JSON Schema primitive type"
default
type"boolean"
description"Default boolean value when not provided"
enum
type"array"
items
type"boolean"
description"Boolean must be one of the specified values"
booleanOptions
description"UI configuration options specific to boolean-type fields"
type"object"
properties
x-input
enum
"OO.ui.CheckboxInputWidget"
"OO.ui.ToggleSwitchWidget"
default"OO.ui.ToggleSwitchWidget"
type"string"
description"Widget type for boolean input"
x-input-config
type"object"
x-dependency
and
path"x-input"
op"exists"
path"x-input"
op"!="
value""
description"Configuration options passed to the selected input widget"
x-watch"x-input"
x-message
x-label-template"Using options from <a target="blank" href="{{replace wgArticlePath '$1' 'JsonSchema:SchemaBuilder/InputOptions'}}">JsonSchema:SchemaBuilder/InputOptions</a> (#/definitions/{{x-input}})"
links
rel"describedBy"
href"JsonSchema:SchemaBuilder/InputOptions#/definitions/{{x-input}}"
x-control-config
type"object"
description"Additional control configuration for the boolean field"
$ref"#/definitions/controlConfig"
null
description"JSON Schema null type definition"
type"object"
allOf
$ref"#/definitions/baseProperties"
properties
type
enum
"null"
const"null"
x-format"hidden"
description"JSON Schema primitive type"
default
type"null"
description"Default null value when not provided"
nullOptions
description"UI configuration options for null-type fields"
type"object"
properties
x-format
type"string"
enum
"null"
"info"
"button"
default"null"
description"Custom format type"
x-input-config
type"object"
x-dependency
x-format"button"
description"Configuration options passed to the selected input widget"
x-message
label"Using options from [[JsonSchema:SchemaBuilder/InputOptions]] (#/definitions/button)"
x-label-format"wikitext"
links
rel"describedBy"
href"JsonSchema:SchemaBuilder/InputOptions#/definitions/button"
x-button-action
type"string"
description"action name registered in form options -> callbacks -> button"
x-message
type"object"
description"Contextual message to display with the object field"
properties
type
type"string"
enum
"notice"
"error"
"warning"
"success"
description"Message severity level"
label
type"string"
x-format"textarea"
description"Message text content"
x-label-format
type"string"
description"label format"
enum
"text"
"html"
"wikitext"
icon
type"string"
description"OOUI icon name to display ([https://doc.wikimedia.org/oojs-ui/master/demos/?page=icons&theme=wikimediaui&direction=ltr&platform=desktop see here])"
x-description-format"wikitext"
inline
type"boolean"
description"Display message inline within the field"
array
description"JSON Schema array type definition"
type"object"
allOf
$ref"#/definitions/baseProperties"
properties
type
enum
"array"
const"array"
x-format"hidden"
description"JSON Schema primitive type"
default
type"array"
description"Default value for the array when not provided"
additionalItems
$ref"#/definitions/schema"
description"Schema for additional items beyond those defined in prefixItems"
contains
$ref"#/definitions/schema"
description"Schema that at least one item in the array must satisfy"
maxContains
type"integer"
minimum0
description"Maximum number of items that can satisfy the 'contains' schema"
maxItems
type"integer"
minimum0
description"Maximum number of items allowed in the array"
minContains
type"integer"
minimum0
description"Minimum number of items that must satisfy the 'contains' schema"
minItems
type"integer"
minimum0
description"Minimum number of items required in the array"
prefixItems
type"array"
items
$ref"#/definitions/schema"
x-layout"tabs_"
description"Positional validation for the beginning of the array"
unevaluatedItems
$ref"#/definitions/schema"
description"Schema for items not evaluated by prefixItems or items"
uniqueItems
type"boolean"
description"All items in the array must be unique"
arrayOptions
description"UI configuration options specific to array-type fields"
x-default-properties
"items"
type"object"
properties
x-layout
type"string"
enum
"default"
"multiselect"
"booklet"
"tabs"
"table"
"tuple"
default"default"
description""
x-showtrue
x-layout-config
type"object"
description"Additional configuration for the selected layout"
items
x-watch"x-layout"
links
rel"describedBy"
href"#/definitions/ArrayItems-{{x-layout}}"
x-collapsible
type"boolean"
description"Determine whether this object should be displayed as a collapsed element"
x-collapsible-config
type"object"
properties
collapsed
type"boolean"
defaulttrue
label
type"string"
description"Override schema title or key"
icon
type"string"
description"OOUI icon name to display ([https://doc.wikimedia.org/oojs-ui/master/demos/?page=icons&theme=wikimediaui&direction=ltr&platform=desktop see here])"
x-description-format"wikitext"
survey
description"JSON Schema object type definition"
x-default-properties
"properties"
type"object"
allOf
$ref"#/definitions/baseProperties"
$ref"JsonSchema:SurveyBuilderLinear"
properties
type
enum
"object"
const"object"
x-format"hidden"
description"JSON Schema primitive type"
patternProperties
.*
$ref"#/definitions/schema"
object
description"JSON Schema object type definition"
x-default-properties
"properties"
type"object"
allOf
$ref"#/definitions/baseProperties"
properties
type
enum
"object"
const"object"
x-format"hidden"
description"JSON Schema primitive type"
default
type"object"
description"Default object value when not provided"
additionalProperties
type"boolean"
description"Whether properties not defined in 'properties' are allowed"
x-default-properties
type"array"
items
type"string"
x-input"OO.ui.TagMultiselectWidget"
description"List of property names that should be included by default"
x-ui-name
type"string"
description"Name of the UI schema to display from x-additional-properties-ui list"
definitions
type"object"
patternProperties
.*
$ref"#/definitions/schema"
description"Reusable schema definitions (alias of $defs)"
$defs
type"object"
patternProperties
.*
$ref"#/definitions/schema"
description"Reusable schema definitions (alias of definitions)"
maxProperties
type"integer"
minimum0
description"Maximum number of properties allowed"
minProperties
type"integer"
minimum0
description"Minimum number of properties required"
patternProperties
type"object"
patternProperties
.*
$ref"#/definitions/schema"
description"Property validation where property names must match regex patterns"
properties
x-toolbar"button"
title"Properties"
type"object"
patternProperties
.*
$ref"#/definitions/schema"
x-additional-properties-ui
label"New property"
schema"#/definitions/newProperty"
popup_size"medium"
additionalPropertiestrue
description"User-defined properties with their schemas"
x-additional-properties-ui_
label"field"
schema"JsonSchema:SchemaBuilder/Field"
label"subitem"
schema"JsonSchema:SchemaBuilder/Subitem"
label"geolocation"
schema"JsonSchema:SchemaBuilder/Geolocation"
label"survey"
schema"JsonSchema:SchemaBuilder/Survey"
propertyNames
$ref"#/definitions/schema"
description"Schema for validating property names"
required
type"array"
items
type"string"
x-input"OO.ui.TagMultiselectWidget"
x-hiddentrue
uniqueItemstrue
readOnlytrue
description"List of property names that must be present"
x-group-properties
type"object"
description"Add properties representing group names. Only works in conjunction with tabs or booklet layouts."
additionalProperties
title"Properties"
type"array"
description"Add properties for each group"
items
type"string"
x-input"OO.ui.MenuTagMultiselectWidget"
x-enum-provider"sameLevelProperties"
x-value-converter
type"string"
description"A value converter defined as [[MediaWiki:JsonFormsOptions]]'s callback to convert forth and back the value"
x-description-format"wikitext"
required
Empty array
objectOptions
description"UI configuration options specific to object-type fields"
type"object"
properties
x-layout
type"string"
enum
"default"
"tabs"
"booklet"
"horizontal"
"paged"
"splitter"
description"Layout style for object properties"
x-showtrue
x-layout-config
type"object"
description"Additional configuration for the selected layout"
x-collapsible
type"boolean"
description"Determine whether this object should be displayed as a collapsed element"
x-collapsible-config
type"object"
properties
collapsed
type"boolean"
defaulttrue
label
type"string"
description"Override schema title or key"
icon
type"string"
description"OOUI icon name to display ([https://doc.wikimedia.org/oojs-ui/master/demos/?page=icons&theme=wikimediaui&direction=ltr&platform=desktop see here])"
x-description-format"wikitext"
x-message
type"object"
description"Contextual message to display with the object field"
properties
type
type"string"
enum
"notice"
"error"
"warning"
"success"
description"Message severity level"
label
type"string"
x-format"textarea"
description"Message text content"
x-label-format
type"string"
description"label format"
enum
"text"
"html"
"wikitext"
icon
type"string"
description"OOUI icon name to display ([https://doc.wikimedia.org/oojs-ui/master/demos/?page=icons&theme=wikimediaui&direction=ltr&platform=desktop see here])"
x-description-format"wikitext"
inline
type"boolean"
description"Display message inline within the field"
x-additional-properties-ui
title"UI Schema Configuration"
description"Defines available UI schemas for dynamically adding properties"
oneOf
title"Single UI Schema"
$ref"#/definitions/uiSchemaItem"
title"Multiple UI Schemas"
type"array"
items
$ref"#/definitions/uiSchemaItem"
minItems1
uniqueItemstrue
x-hidden-properties
type"array"
items
type"string"
x-input"OO.ui.TagMultiselectWidget"
x-input-config
inputPosition"outline"
description"Hidden properties: they can also be properties not declared in the schema but allowed by "patternProperties" or "additionalProperties""
required
Empty array
rootOptions
description"Root-level configuration. Additional object properties can be added via the button "Additional items" and additional primitive properties can be added by the buttons at the bottom."
type"object"
properties
x-name
type"string"
title"name"
description"Unique identifier for this schema definition"
minLength1
x-runtime-onlytrue
$schema
format"uri"
type"string"
description"JSON Schema dialect URI (e.g., https://json-schema.org/draft-07/schema)"
$id
format"uri"
type"string"
description"Unique identifier URI for this schema"
x-watch"x-name"
x-template"{{wgServer}}{{replace wgArticlePath '$1' 'JsonSchema:'}}{{replace x-name ' ' '_'}}"
x-layout
type"string"
description"Controls how the form fields are arranged in the UI"
enum
"default"
"paged"
"tabs"
"booklet"
"horizontal"
"splitter"
x-showtrue
x-required
x-hiddentrue
required
"x-name"
rootOptionsArray
description"Root-level configuration for array or multiple schema. Additional object properties can be added via the button "Additional items" and additional primitive properties can be added by the buttons at the bottom."
type"object"
properties
x-name
type"string"
title"name"
description"Unique identifier for this schema definition"
minLength1
x-runtime-onlytrue
$schema
format"uri"
type"string"
description"JSON Schema dialect URI (e.g., https://json-schema.org/draft-07/schema)"
$id
format"uri"
type"string"
description"Unique identifier URI for this schema"
x-watch"x-name"
x-template"{{wgServer}}{{replace wgArticlePath '$1' 'JsonSchema:'}}{{replace x-name ' ' '_'}}"
x-required
x-hiddentrue
definitions
type"object"
patternProperties
.*
$ref"#/definitions/schema"
description"Reusable schema definitions (alias of $defs)"
$defs
type"object"
patternProperties
.*
$ref"#/definitions/schema"
description"Reusable schema definitions (alias of definitions)"
required
"x-name"
schema
@comment"Complete JSON Schema type selector. Supports all JSON Schema primitives plus logical combinations (multiple)."
x-switch"OO.ui.ButtonMenuSelectWidget"
x-switch-config
icon"menu"
label"switch type"
flags
"primary"
"progressive"
oneOf
title"String"
$ref"#/definitions/typedSchema/string"
title"Number"
$ref"#/definitions/typedSchema/number"
title"Integer"
$ref"#/definitions/typedSchema/integer"
title"Boolean"
$ref"#/definitions/typedSchema/boolean"
title"Null"
$ref"#/definitions/typedSchema/null"
title"Array"
$ref"#/definitions/typedSchema/array"
title"Object"
$ref"#/definitions/typedSchema/object"
title"Multiple"
$ref"#/definitions/typedSchema/multiple"
ArrayItems-default
@comment"Complete JSON Schema type selector. Supports all JSON Schema primitives plus logical combinations (multiple)."
default
type"object"
x-switch"OO.ui.ButtonMenuSelectWidget"
x-switch-config
icon"menu"
label"switch type"
flags
"primary"
"progressive"
oneOf
title"String"
$ref"#/definitions/typedSchema/string"
title"Number"
$ref"#/definitions/typedSchema/number"
title"Integer"
$ref"#/definitions/typedSchema/integer"
title"Boolean"
$ref"#/definitions/typedSchema/boolean"
title"Null"
$ref"#/definitions/typedSchema/null"
title"Array"
$ref"#/definitions/typedSchema/array"
title"Object"
$ref"#/definitions/typedSchema/object"
title"Multiple"
$ref"#/definitions/typedSchema/multiple"
ArrayItems-multiselect
@comment"Complete JSON Schema type selector. Supports all JSON Schema primitives plus logical combinations (multiple)."
default
type"object"
x-switch"OO.ui.ButtonMenuSelectWidget"
x-switch-config
icon"menu"
label"switch type"
flags
"primary"
"progressive"
oneOf
title"String"
$ref"#/definitions/typedSchema/stringMultiselect"
title"Number"
$ref"#/definitions/typedSchema/numberMultiselect"
title"Integer"
$ref"#/definitions/typedSchema/integerMultiselect"
ArrayItems-booklet
x-switch"OO.ui.ButtonMenuSelectWidget"
x-switch-config
icon"menu"
label"switch type"
flags
"primary"
"progressive"
oneOf
title"Object"
$ref"#/definitions/typedSchema/object"
title"Multiple"
$ref"#/definitions/typedSchema/multiple"
ArrayItems-tuple
allOf
title"tuple"
type"array"
items
$ref"#/definitions/schema"
ArrayItems-tabs
x-switch"OO.ui.ButtonMenuSelectWidget"
x-switch-config
icon"menu"
label"switch type"
flags
"primary"
"progressive"
oneOf
title"Object"
$ref"#/definitions/typedSchema/object"
title"Multiple"
$ref"#/definitions/typedSchema/multiple"
ArrayItems-table
allOf
title"Object"
$ref"#/definitions/typedSchema/object"
typedSchema
description"Container for all primitive type schemas with their options"
string
allOf
$ref"#/definitions/string"
$ref"#/definitions/stringOptions"
number
allOf
$ref"#/definitions/number"
$ref"#/definitions/numberOptions"
integer
allOf
$ref"#/definitions/integer"
$ref"#/definitions/integerOptions"
boolean
allOf
$ref"#/definitions/boolean"
$ref"#/definitions/booleanOptions"
stringMultiselect
allOf
$ref"#/definitions/string"
$ref"#/definitions/stringOptionsMultiselect"
numberMultiselect
allOf
$ref"#/definitions/number"
$ref"#/definitions/numberOptionsMultiselect"
integerMultiselect
allOf
$ref"#/definitions/integer"
$ref"#/definitions/integerOptionsMultiselect"
null
allOf
$ref"#/definitions/null"
$ref"#/definitions/nullOptions"
array
allOf
$ref"#/definitions/array"
$ref"#/definitions/arrayOptions"
object
allOf
$ref"#/definitions/object"
$ref"#/definitions/objectOptions"
multiple
allOf
$ref"#/definitions/multiple"
schemaRoot
description"Root schema selector - determines the top-level structure."
default
type"object"
x-switch"OO.ui.ButtonMenuSelectWidget"
x-switch-config
icon"menu"
label"switch type"
flags
"primary"
"progressive"
oneOf
title"Object"
allOf
$ref"#/definitions/typedSchema/object"
$ref"#/definitions/rootOptions"
title"Array"
allOf
$ref"#/definitions/typedSchema/array"
$ref"#/definitions/rootOptionsArray"
title"Multiple"
allOf
$ref"#/definitions/typedSchema/multiple"
$ref"#/definitions/rootOptionsArray"