{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "definitions": {
        "fieldOptions": {
            "title": "Field options",
            "description": "Field-level configuration options",
            "type": "object",
            "properties": {
                "label": {
                    "title": "Field label",
                    "description": "Field labels are auto-generated from field names. This option allows to control the label",
                    "type": "string",
                    "minLength": 1
                },
                "default": {
                    "title": "Default value",
                    "description": "Default value for the field",
                    "anyOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "type": "integer"
                        },
                        {
                            "type": "number"
                        },
                        {
                            "type": "string"
                        }
                    ]
                },
                "renderAs": {
                    "title": "Render value",
                    "description": "Non-default rendering of the field value",
                    "type": "string"
                },
                "orderBy": {
                    "title": "Order by field",
                    "description": "Field name to use for ordering",
                    "type": "string"
                },
                "orderDir": {
                    "title": "Order by direction",
                    "description": "Direction to use for ordering",
                    "type": "string",
                    "enum": [
                        "desc",
                        "asc"
                    ]
                },
                "format": {
                    "title": "Date/time format",
                    "description": "Date time format for time stamp fields",
                    "type": "string"
                },
                "precision": {
                    "title": "Numeric precision",
                    "description": "How many digits to render after the floating point",
                    "type": "integer"
                },
                "linkTo": {
                    "title": "Link value to URL",
                    "description": "URL to use for linking rendered values (use %s as placeholder)",
                    "type": "string"
                },
                "linkTarget": {
                    "title": "Link target for value URL",
                    "description": "Target for link value URL (_blank, _self, _parent, _top, framename)",
                    "type": "string"
                },
                "limit": {
                    "title": "Limit of field entity outputs",
                    "description": "Used for aggregate fields, like file uploads",
                    "type": "integer"
                },
                "translatable": {
                    "title": "Translatable button",
                    "description": "Allow Render translatable button",
                    "type": "boolean"
                },
                "auto-increment": {
                    "title": "Auto-increment flag",
                    "description": "Auto-increment flag",
                    "type": "boolean"
                },
                "min": {
                    "title": "Minimal value",
                    "description": "Define a minimal value for field",
                    "type": "integer"
                },
                "placeholder": {
                    "title": "Placeholder attribute used in HTML tags",
                    "description": "Define placeholder attr for input/textarea tags",
                    "type": "string"
                },
                "timeIncrement": {
                    "title": "Datetime Picker Minutes increment",
                    "description": "Define time increment for minutes dropdown",
                    "type": "integer"
                },
                "showMonthYearSelect": {
                    "title": "Show year month dropdowns",
                    "description": "Show year and month select boxes above calendars to jump to a specific month and year",
                    "type": "boolean"
                },
                "timePicker": {
                    "title": "Adding time handlers into popup",
                    "description": "Adds select boxes to choose times in addition to dates",
                    "type": "boolean"
                },
                "max": {
                    "title": "Maximal value",
                    "description": "Define a maximal value for field",
                    "type": "integer"
                },
                "step": {
                    "title": "Step value",
                    "description": "Define a step value to increase/decrease numeric field",
                    "type": "integer"
                },
                "fileUploadAdapter": {
                    "title": "Upload Adapter",
                    "description": "Define Upload Adapter for FileStorage plugin",
                    "type": "string",
                    "enum": [
                        "Local",
                        "AwsS3",
                        "Dropbox",
                        "AzureBlobStorage",
                        "GoogleCloudStorage"
                    ]
                },
                "personal": {
                    "title": "Personal Identifiable Information (PII)",
                    "description": "Define PPI (US term), personal data (EU term) and sensitive data (EU term)",
                    "type": "boolean",
                    "default": false
                },
                "help": {
                    "title": "Help tooltip",
                    "description": "Add help tooltip next to the label of the field",
                    "type": "string"
                }
            },
            "additionalProperties": false
        }
    },
    "title": "Fields configuration",
    "description": "Fields configuration options",
    "type": "object",
    "properties": {},
    "additionalProperties": {
        "allOf": [
            {
                "$ref": "#/definitions/fieldOptions"
            }
        ]
    }
}