Plugin Configuration JSON Schema

Below you can find the full JSON Schema used for the Plugin Configuration classes. You can also view the plugin_config.schema.json raw file.

JSON Schemas are case sensitive

The values defined in the JSON Schema are case sensitive. Make sure to only use values in your Plugin (Configuration/Result) JSON that are also listed in the JSON Schemas. Using incorrect spelling or wrongly uppercased/lowercased values may result in undefined behavior.

{
    "$schema": "http://json-schema.org/draft-07/schema",
    "title": "PluginConfig",
    "description": "General configuration for scan plugins",
    "type": "object",
    "allOf": [{
            "required": [
                "id"
            ]
        },
        {
            "oneOf": [{
                    "required": [
                        "barcodeConfig"
                    ]
                },
                {
                    "required": [
                        "meterConfig"
                    ]
                },
                {
                    "required": [
                        "universalIdConfig"
                    ]
                },
                {
                    "required": [
                        "mrzConfig"
                    ]
                },
                {
                    "required": [
                        "japaneseLandingPermissionConfig"
                    ]
                },
                {
                    "required": [
                        "vehicleRegistrationCertificateConfig"
                    ]
                },
                {
                    "required": [
                        "licensePlateConfig"
                    ]
                },
                {
                    "required": [
                        "tinConfig"
                    ]
                },
                {
                    "required": [
                        "tireSizeConfig"
                    ]
                }, {
                    "required": [
                        "commercialTireIdConfig"
                    ]
                }, {
                    "required": [
                        "tireMakeConfig"
                    ]
                },
                {
                    "required": [
                        "vinConfig"
                    ]
                },
                {
                    "required": [
                        "containerConfig"
                    ]
                },
                {
                    "required": [
                        "ocrConfig"
                    ]
                }
            ]
        }
    ],
    "properties": {
        "id": {
            "description": "Sets a name for the scan plugin.",
            "type": "string"
        },
        "cancelOnResult": {
            "type": "boolean",
            "default": true,
            "description": "Sets whether or not to continue scanning once a result is found."
        },
        "startScanDelay": {
            "description": "Sets an initial time period where scanned frames are not processed as results.",
            "type": "integer",
            "default": 0,
            "minimum": 0,
            "maximum": 1000000
        },
        "startVariables": {
            "type": "array",
            "description": "Allows to fine-tune a list of options for plugins.",
            "items": {
                "$ref": "#/definitions/startVariable"
            }
        },
        "barcodeConfig": {
            "$ref": "#/definitions/barcodeConfig"
        },
        "meterConfig": {
            "$ref": "#/definitions/meterConfig"
        },
        "universalIdConfig": {
            "$ref": "#/definitions/universalIdConfig"
        },
        "mrzConfig": {
            "$ref": "#/definitions/mrzConfig"
        },
        "japaneseLandingPermissionConfig": {
            "$ref": "#/definitions/japaneseLandingPermissionConfig"
        },
        "vehicleRegistrationCertificateConfig": {
            "$ref": "#/definitions/vehicleRegistrationCertificateConfig"
        },
        "licensePlateConfig": {
            "$ref": "#/definitions/licensePlateConfig"
        },
        "tinConfig": {
            "$ref": "#/definitions/tinConfig"
        },
        "tireSizeConfig": {
            "$ref": "#/definitions/tireSizeConfig"
        },
        "commercialTireIdConfig": {
            "$ref": "#/definitions/commercialTireIdConfig"
        }, 
        "tireMakeConfig": {
            "$ref": "#/definitions/tireMakeConfig"
        },
        "vinConfig": {
            "$ref": "#/definitions/vinConfig"
        },
        "containerConfig": {
            "$ref": "#/definitions/containerConfig"
        },
        "ocrConfig": {
            "$ref": "#/definitions/ocrConfig"
        }
    },
    "definitions": {
        "startVariable": {
            "type": "object",
            "description": "Describes a start variable for fine-tuning plugins.",
            "properties": {
                "key": {
                    "type": "string",
                    "description": "The key of the variable."
                },
                "value": {
                    "type": ["string", "number", "integer", "boolean"],
                    "description": "The value of the variable."
                }
            },
            "required": ["key", "value"],
            "additionalProperties": false
        },
        "ocrConfig": {
            "description": "Configuration for general OCR scanning use-cases",
            "type": "object",
            "properties": {
                "scanMode": {
                    "type": "string",
                    "enum": ["line", "grid", "auto"],
                    "default": "auto",
                    "description": "Sets whether to scan single-line texts, multi-line texts in a grid-formation or finds text automatically."
                },
                "models": {
                    "type": "array",
                    "description": "Sets one or more custom Anyline models. The files have to be located in the project and point to a path relative from the project root. If no customCmdFile is set, only a maximum of one model is valid. If a customCmdFile is set, it depends whether or not the customCmdFile requires multiple models or not. Please check the official documentation for more details.",
					"minItems": 1,
                    "items": {
                        "type": "string"
					}
                },
                "customCmdFile": {
                    "type": "string",
                    "description": "Sets a custom Anyline script. The file has to be located in the project and point to a path relative from the project root. Please check the official documentation for more details."
                },
                "minSharpness": {
                    "type": "integer",
                    "description": "Sets a sharpnes factor (0-100) to rule out blurry images."
                },
                "charCountX": {
                    "type": "integer",
                    "description": "Sets the number of characters in each text line for 'grid' mode."
                },
                "charCountY": {
                    "type": "integer",
                    "description": "Sets the number of text lines for 'grid' mode."
                },
                "charPaddingXFactor": {
                    "type": "number",
                    "description": "Defines the average horizontal distance between two characters in 'grid' mode, measured in percentage of the characters width."
                },
                "charPaddingYFactor": {
                    "type": "number",
                    "description": "Defines the average vertical distance between two characters in 'grid' mode, measured in percentage of the characters height."
                },
                "minConfidence": {
                    "type": "integer",
                    "description": "Sets a minimum confidence which has to be reached in order to trigger a scan result."
                },
                "minCharHeight": {
                    "type": "integer",
                    "description": "Sets a minimum character height (in pixels) to be considered in the scanning process."
                },
                "maxCharHeight": {
                    "type": "integer",
                    "description": "Sets a maximum character height (in pixels) to be considered in the scanning process."
                },
                "validationRegex": {
                    "type": "string",
                    "description": "Sets a regular expression which the scanned text needs to match in order to trigger a scan result."
                },
                "charWhitelist": {
                    "type": "string",
                    "description": "Restricts the scanner to a set of characters to be detected."
                }
            },
            "dependencies": {
                "minSharpness": {
                    "properties": {
                        "scanMode": {
                            "enum": ["line"]
                        }
                    }
                },
                "charCountX": {
                    "properties": {
                        "scanMode": {
                            "enum": ["grid"]
                        }
                    }
                },
                "charCountY": {
                    "properties": {
                        "scanMode": {
                            "enum": ["grid"]
                        }
                    }
                },
                "charPaddingXFactor": {
                    "properties": {
                        "scanMode": {
                            "enum": ["grid"]
                        }
                    }
                },
                "charPaddingYFactor": {
                    "properties": {
                        "scanMode": {
                            "enum": ["grid"]
                        }
                    }
                }
            },
            "additionalProperties": false
        },
        "containerConfig": {
            "description": "Configuration for scanning shipping container numbers",
            "type": "object",
            "properties": {
                "scanMode": {
                    "type": "string",
                    "description": "Determines if container numbers shall be scanned horizontally or vertically.",
                    "enum": ["HORIZONTAL", "VERTICAL"],
                    "default": "HORIZONTAL"
                },
                "minConfidence": {
                    "type": "integer",
                    "description": "Sets a minimum confidence which has to be reached in order to trigger a scan result."
                },
                "validationRegex": {
                    "description": "Sets a regular expression which the scanned text needs to match in order to trigger a scan result.",
                    "type": "string"
                }
            },
            "additionalProperties": false
        },
        "vinConfig": {
            "description": "Configuration for scanning vehicle identification numbers (VIN)",
            "type": "object",
            "properties": {
                "validationRegex": {
                    "type": "string",
                    "description": "Sets a regular expression which the scanned text needs to match in order to trigger a scan result."
                },
                "charWhitelist": {
                    "type": "string",
                    "description": "Restricts the scanner to a set of characters to be detected."
                }
            },
            "additionalProperties": false
        },
        "tireMakeConfig": {
            "description": "Configuration for scanning Tire Makes",
            "type": "object",
            "properties": {
                "upsideDownMode": {
                    "description": "Sets whether the text shall also be scanned upside-down. By default, it is disabled.",
                    "type": "string",
                    "enum": ["DISABLED", "ENABLED", "AUTO"],
                    "default": "DISABLED"
                },
                "minConfidence": {
                    "type": "integer",
                    "description": "Sets a minimum confidence which has to be reached in order to trigger a scan result."
                },
                "validationRegex": {
                    "type": "string",
                    "description": "Sets a regular expression which the tire make text needs to match in order to trigger a scan result. E.g. \"(Continental|Dunlop)\" will only trigger on Continental or Dunlop tires."
                }
            },
            "additionalProperties": false
        },
        "commercialTireIdConfig": {
            "description": "Configuration for scanning commercial Tire IDs",
            "type": "object",
            "properties": {
                "upsideDownMode": {
                    "description": "Sets whether the text shall also be scanned upside-down. By default, it is disabled.",
                    "type": "string",
                    "enum": ["DISABLED", "ENABLED", "AUTO"],
                    "default": "DISABLED"
                },
                "minConfidence": {
                    "type": "integer",
                    "description": "Sets a minimum confidence which has to be reached in order to trigger a scan result."
                },
                "validationRegex": {
                    "type": "string",
                    "description": "Sets a regular expression which the commercial tire id text needs to match in order to trigger a scan result."
                }
            },
            "additionalProperties": false
        },
        "tireSizeConfig": {
            "description": "Configuration for scanning Tire Size Specifications",
            "type": "object",
            "properties": {
                "upsideDownMode": {
                    "type": "string",
                    "description": "Sets whether the text shall also be scanned upside-down. By default, it is disabled.",
                    "enum": [
                        "DISABLED",
                        "ENABLED",
                        "AUTO"
                    ],
                    "default": "DISABLED"
                },
                "minConfidence": {
                    "type": "integer",
                    "description": "Sets a minimum confidence which has to be reached in order to trigger a scan result."
                },
                "validationRegex": {
                    "type": "string",
                    "description": "Sets a regular expression which the tire size text needs to match in order to trigger a scan result."
                }
            },
            "additionalProperties": false
        },
        "tinConfig": {
            "description": "Configuration for scanning TIN numbers",
            "type": "object",
            "properties": {
                "scanMode": {
                    "type": "string",
                    "description": "Sets the mode to scan universal TIN numbers ('UNIVERSAL') or TIN numbers of any length starting with DOT ('DOT').",
                    "enum": [
                        "UNIVERSAL",
                        "DOT"
                    ],
                    "default": "UNIVERSAL"
                },
                "upsideDownMode": {
                    "type": "string",
                    "description": "Sets whether the text shall also be scanned upside-down. By default, it is disabled.",
                    "enum": [
                        "DISABLED",
                        "ENABLED",
                        "AUTO"
                    ],
                    "default": "DISABLED"
                },
                "minConfidence": {
                    "type": "integer",
                    "description": "Sets a minimum confidence which has to be reached in order to trigger a scan result."
                },
                "validateProductionDate": {
                    "type": "boolean",
                    "description": "Sets whether the production date validation is enabled. If it is set to false the scan result is also returned for invalid and missing dates. Defaults to true.",
                    "default": true
                },
                "validationRegex": {
                    "type": "string",
                    "description": "Sets a regular expression which the TIN text needs to match in order to trigger a scan result."
                }
            },
            "additionalProperties": false
        },
        "licensePlateConfig": {
            "description": "Configuration for scanning license plates",
            "type": "object",
            "properties": {
                "scanMode": {
                    "description": "Specifies a country or location of which license plates shall be scanned.",
                    "type": "string",
                    "enum": [
                        "auto",
                        "austria",
                        "unitedkingdom",
                        "ireland",
                        "poland",
                        "norway",
                        "norwayspecial",
                        "germany",
                        "czech",
                        "finland",
                        "france",
                        "croatia",
                        "slovakia",
                        "slovenia",
                        "albania",
                        "andorra",
                        "armenia",
                        "azerbaijan",
                        "belarus",
                        "belgium",
                        "bosniaandherzegovina",
                        "bulgaria",
                        "cyprus",
                        "denmark",
                        "estonia",
                        "georgia",
                        "greece",
                        "hungary",
                        "iceland",
                        "italy",
                        "latvia",
                        "liechtenstein",
                        "lithuania",
                        "luxembourg",
                        "malta",
                        "moldova",
                        "monaco",
                        "montenegro",
                        "netherlands",
                        "northmacedonia",
                        "portugal",
                        "romania",
                        "russia",
                        "serbia",
                        "spain",
                        "sweden",
                        "switzerland",
                        "turkey",
                        "ukraine",
                        "unitedstates",
                        "africa"
                    ],
                    "default": "auto"
                },
                "minConfidence": {
                    "type": "integer",
                    "description": "Sets a minimum confidence which has to be reached in order to trigger a scan result.",
                    "default": 0
                },
                "validationRegex": {
                    "type": "string",
                    "description": "Sets a regular expression which the scanned text needs to match in order to trigger a scan result."
                }
            },
            "additionalProperties": false
        },
        "barcodeConfig": {
            "description": "Configuration for scanning barcodes",
            "type": "object",
            "properties": {
                "multiBarcode": {
                    "type": "boolean",
                    "description": "Setting this to 'true' will enable reading multiple barcodes per frame.",
                    "default": false
                },
                "parseAAMVA": {
                    "type": "boolean",
                    "description": "If this option is set, barcodes parsed according to the AAMVA standard. This only works for PDF417 codes on driving licenses.",
                    "default": false
                },
                "consecutiveEqualResults": {
                    "type": "boolean",
                    "description": "If this option is set, allows consecutive barcode results of the same barcode when scanning continuously.",
                    "default": false
                },
                "barcodeFormats": {
                    "type": "array",
                    "description": "Set this to filter which barcode formats should be scanned. Setting 'ALL' will enable scanning all supported formats.",
                    "minItems": 1,
                    "items": {
                        "type": "string",
                        "enum": [
                            "ALL",
                            "ONE_D_INVERSE",
                            "AZTEC",
                            "AZTEC_INVERSE",
                            "BOOKLAND",
                            "CODABAR",
                            "CODE_11",
                            "CODE_32",
                            "CODE_39",
                            "CODE_93",
                            "CODE_128",
                            "DATABAR",
                            "COUPON",
                            "DATA_MATRIX",
                            "DISCRETE_2_5",
                            "DOT_CODE",
                            "EAN_8",
                            "EAN_13",
                            "GS1_QR_CODE",
                            "GS1_128",
                            "ITF",
                            "ISSN_EAN",
                            "ISBT_128",
                            "KIX",
                            "MATRIX_2_5",
                            "MSI",
                            "MICRO_QR",
                            "MICRO_PDF",
                            "PDF_417",
                            "POST_UK",
                            "QR_CODE",
                            "QR_INVERSE",
                            "RSS_14",
                            "RSS_EXPANDED",
                            "TRIOPTIC",
                            "UPC_A",
                            "UPC_E",
                            "UPC_EAN_EXTENSION",
                            "UPU_FICS",
                            "USPS_4CB",
                            "US_PLANET",
                            "US_POSTNET",
                            "MAXICODE"
                        ]
                    }
                }
            },
            "required": [
                "barcodeFormats"
            ],
            "additionalProperties": false
        },
        "meterConfig": {
            "description": "Configuration for scanning meters",
            "type": "object",
            "required": [
                "scanMode"
            ],
            "properties": {
                "scanMode": {
                    "type": "string",
                    "description": "Determines which types of meters to scan.",
                    "enum": [
                        "auto_analog_digital_meter",
                        "dial_meter",
                        "multi_field_digital_meter",
                        "digital_meter_2_experimental"
                    ],
                    "default": "auto_analog_digital_meter"
                },
                "minConfidence": {
                    "type": "integer",
                    "description": "Sets a minimum confidence which has to be reached in order to trigger a scan result."
                },
                "maxNumDecimalDigits": {
                    "type": "integer",
                    "description": "Defines the maximum number of read decimal digits for values >=0. Negative values mean all decimal digits are read. Currently implemented only for the \"auto_analog_digital_meter\" scan mode.",
                    "default": -1
                }
            },
            "additionalProperties": false
        },
        "allowedLayout": {
            "description": "Sets a set of layouts to be included by the scanner. If none are set, every supported layout is included.",
            "type": "array",
            "items": {
                "type": "string",
                "pattern": "([A-Z]{2}(-[A-Z]{2,3})?_[A-Z]{3}_[A-Z]+_[A-Z0-9]+(-[A-Z0-9]+)*_(F|B)(_v[0-9])?)"
            }
        },
        "layoutMRZ": {
            "title": "layoutMrz",
            "description": "Contains all the supported field scan options for MRZ.",
            "type": "object",
            "properties": {
                "vizAddress": {
                    "$ref": "#/definitions/universalIdField"
                },
                "vizDateOfIssue": {
                    "$ref": "#/definitions/universalIdField"
                },
                "vizSurname": {
                    "$ref": "#/definitions/universalIdField"
                },
                "vizGivenNames": {
                    "$ref": "#/definitions/universalIdField"
                },
                "vizDateOfBirth": {
                    "$ref": "#/definitions/universalIdField"
                },
                "vizDateOfExpiry": {
                    "$ref": "#/definitions/universalIdField"
                },
                "dateOfBirth": {
                    "$ref": "#/definitions/universalIdField"
                },
                "dateOfExpiry": {
                    "$ref": "#/definitions/universalIdField"
                }
            },
            "additionalProperties": false
        },
        "layoutDrivingLicense": {
            "description": "Contains all the supported field scan options for driving licenses.",
            "type": "object",
            "properties": {
                "additionalInformation": {
                    "$ref": "#/definitions/universalIdField"
                },
                "additionalInformation1": {
                    "$ref": "#/definitions/universalIdField"
                },
                "address": {
                    "$ref": "#/definitions/universalIdField"
                },
                "audit": {
                    "$ref": "#/definitions/universalIdField"
                },
                "authority": {
                    "$ref": "#/definitions/universalIdField"
                },
                "cardNumber": {
                    "$ref": "#/definitions/universalIdField"
                },
                "categories": {
                    "$ref": "#/definitions/universalIdField"
                },
                "conditions": {
                    "$ref": "#/definitions/universalIdField"
                },
                "dateOfBirth": {
                    "$ref": "#/definitions/universalIdField"
                },
                "dateOfExpiry": {
                    "$ref": "#/definitions/universalIdField"
                },
                "dateOfIssue": {
                    "$ref": "#/definitions/universalIdField"
                },
                "documentDiscriminator": {
                    "$ref": "#/definitions/universalIdField"
                },
                "documentNumber": {
                    "$ref": "#/definitions/universalIdField"
                },
                "duplicate": {
                    "$ref": "#/definitions/universalIdField"
                },
                "duration": {
                    "$ref": "#/definitions/universalIdField"
                },
                "endorsements": {
                    "$ref": "#/definitions/universalIdField"
                },
                "eyes": {
                    "$ref": "#/definitions/universalIdField"
                },
                "firstIssued": {
                    "$ref": "#/definitions/universalIdField"
                },
                "firstName": {
                    "$ref": "#/definitions/universalIdField"
                },
                "fullName": {
                    "$ref": "#/definitions/universalIdField"
                },
                "givenNames": {
                    "$ref": "#/definitions/universalIdField"
                },
                "hair": {
                    "$ref": "#/definitions/universalIdField"
                },
                "height": {
                    "$ref": "#/definitions/universalIdField"
                },
                "lastName": {
                    "$ref": "#/definitions/universalIdField"
                },
                "licenceNumber": {
                    "$ref": "#/definitions/universalIdField"
                },
                "licenseClass": {
                    "$ref": "#/definitions/universalIdField"
                },
                "licenseNumber": {
                    "$ref": "#/definitions/universalIdField"
                },
                "name": {
                    "$ref": "#/definitions/universalIdField"
                },
                "office": {
                    "$ref": "#/definitions/universalIdField"
                },
                "parish": {
                    "$ref": "#/definitions/universalIdField"
                },
                "personalNumber": {
                    "$ref": "#/definitions/universalIdField"
                },
                "placeOfBirth": {
                    "$ref": "#/definitions/universalIdField"
                },
                "previousType": {
                    "$ref": "#/definitions/universalIdField"
                },
                "restrictions": {
                    "$ref": "#/definitions/universalIdField"
                },
                "revoked": {
                    "$ref": "#/definitions/universalIdField"
                },
                "sex": {
                    "$ref": "#/definitions/universalIdField"
                },
                "surname": {
                    "$ref": "#/definitions/universalIdField"
                },
                "type": {
                    "$ref": "#/definitions/universalIdField"
                },
                "version": {
                    "$ref": "#/definitions/universalIdField"
                },
                "verticalNumber": {
                    "$ref": "#/definitions/universalIdField"
                },
                "weight": {
                    "$ref": "#/definitions/universalIdField"
                }
            },
            "additionalProperties": false
        },
        "layoutIdFront": {
            "description": "Contains all the supported field scan options for ID front cards.",
            "type": "object",
            "properties": {
                "additionalInformation": {
                    "$ref": "#/definitions/universalIdField"
                },
                "additionalInformation1": {
                    "$ref": "#/definitions/universalIdField"
                },
                "address": {
                    "$ref": "#/definitions/universalIdField"
                },
                "age": {
                    "$ref": "#/definitions/universalIdField"
                },
                "authority": {
                    "$ref": "#/definitions/universalIdField"
                },
                "cardAccessNumber": {
                    "$ref": "#/definitions/universalIdField"
                },
                "citizenship": {
                    "$ref": "#/definitions/universalIdField"
                },
                "cityNumber": {
                    "$ref": "#/definitions/universalIdField"
                },
                "dateOfBirth": {
                    "$ref": "#/definitions/universalIdField"
                },
                "dateOfExpiry": {
                    "$ref": "#/definitions/universalIdField"
                },
                "dateOfIssue": {
                    "$ref": "#/definitions/universalIdField"
                },
                "dateOfRegistration": {
                    "$ref": "#/definitions/universalIdField"
                },
                "divisionNumber": {
                    "$ref": "#/definitions/universalIdField"
                },
                "documentNumber": {
                    "$ref": "#/definitions/universalIdField"
                },
                "familyName": {
                    "$ref": "#/definitions/universalIdField"
                },
                "fathersName": {
                    "$ref": "#/definitions/universalIdField"
                },
                "firstName": {
                    "$ref": "#/definitions/universalIdField"
                },
                "folio": {
                    "$ref": "#/definitions/universalIdField"
                },
                "fullName": {
                    "$ref": "#/definitions/universalIdField"
                },
                "givenNames": {
                    "$ref": "#/definitions/universalIdField"
                },
                "height": {
                    "$ref": "#/definitions/universalIdField"
                },
                "lastName": {
                    "$ref": "#/definitions/universalIdField"
                },
                "licenseClass": {
                    "$ref": "#/definitions/universalIdField"
                },
                "licenseType": {
                    "$ref": "#/definitions/universalIdField"
                },
                "municipalityNumber": {
                    "$ref": "#/definitions/universalIdField"
                },
                "nationalId": {
                    "$ref": "#/definitions/universalIdField"
                },
                "nationality": {
                    "$ref": "#/definitions/universalIdField"
                },
                "parentsGivenName": {
                    "$ref": "#/definitions/universalIdField"
                },
                "personalNumber": {
                    "$ref": "#/definitions/universalIdField"
                },
                "placeAndDateOfBirth": {
                    "$ref": "#/definitions/universalIdField"
                },
                "placeOfBirth": {
                    "$ref": "#/definitions/universalIdField"
                },
                "sex": {
                    "$ref": "#/definitions/universalIdField"
                },
                "stateNumber": {
                    "$ref": "#/definitions/universalIdField"
                },
                "supportNumber": {
                    "$ref": "#/definitions/universalIdField"
                },
                "surname": {
                    "$ref": "#/definitions/universalIdField"
                },
                "voterId": {
                    "$ref": "#/definitions/universalIdField"
                }
            },
            "additionalProperties": false
        },
        "layoutInsuranceCard": {
            "description": "Contains all the supported field scan options for insurance cards.",
            "type": "object",
            "properties": {
                "authority": {
                    "$ref": "#/definitions/universalIdField"
                },
                "dateOfBirth": {
                    "$ref": "#/definitions/universalIdField"
                },
                "dateOfExpiry": {
                    "$ref": "#/definitions/universalIdField"
                },
                "documentNumber": {
                    "$ref": "#/definitions/universalIdField"
                },
                "nationality": {
                    "$ref": "#/definitions/universalIdField"
                },
                "personalNumber": {
                    "$ref": "#/definitions/universalIdField"
                },
                "lastName": {
                    "$ref": "#/definitions/universalIdField"
                },
                "firstName": {
                    "$ref": "#/definitions/universalIdField"
                }
            },
            "additionalProperties": false
        },
        "universalIdField": {
            "type": "object",
            "description": "Configures scanning options for ID fields in order to fine-tune the ID scanner.",
            "properties": {
                "scanOption": {
                    "description": "Set the scanOption to one of the following: 0 = mandatory, 1 = optional, 2 = disabled. Otherwise, it's defaulted.",
                    "type": "integer",
                    "enum": [
                        0,
                        1,
                        2
                    ]
                },
                "minConfidence": {
                    "description": "Set the minConfidence between 0 and 100. Otherwise, it's defaulted.",
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 100
                }
            },
            "additionalProperties": false
        },
        "universalIdConfig": {
            "description": "Configuration for scanning all kinds of identification documents",
            "type": "object",
            "properties": {
                "alphabet": {
                    "description": "Sets a specific character set. Per default, only latin characters are processed.",
                    "type": "string",
                    "enum": [
                        "latin",
                        "arabic",
                        "cyrillic"
                    ],
                    "default": "latin"
                },
                "allowedLayouts": {
                    "type": "object",
                    "description": "Specifies the document types to be scanned and optionally further specifies which types of layout are scanned per type.",
                    "properties": {
                        "mrz": {
                            "$ref": "#/definitions/allowedLayout"
                        },
                        "drivingLicense": {
                            "$ref": "#/definitions/allowedLayout"
                        },
                        "idFront": {
                            "$ref": "#/definitions/allowedLayout"
                        },
                        "insuranceCard": {
                            "$ref": "#/definitions/allowedLayout"
                        }
                    },
                    "additionalProperties": false
                },
                "mrz": {
                    "$ref": "#/definitions/layoutMRZ"
                },
                "drivingLicense": {
                    "$ref": "#/definitions/layoutDrivingLicense"
                },
                "idFront": {
                    "$ref": "#/definitions/layoutIdFront"
                },
                "insuranceCard": {
                    "$ref": "#/definitions/layoutInsuranceCard"
                }
            },
            "dependencies": {
                "mrz": {
                    "properties": {
                        "allowedLayouts": {
                            "required": [
                                "mrz"
                            ]
                        }
                    }
                },
                "drivingLicense": {
                    "properties": {
                        "allowedLayouts": {
                            "required": [
                                "drivingLicense"
                            ]
                        }
                    }
                },
                "idFront": {
                    "properties": {
                        "allowedLayouts": {
                            "required": [
                                "idFront"
                            ]
                        }
                    }
                },
                "insuranceCard": {
                    "properties": {
                        "allowedLayouts": {
                            "required": [
                                "insuranceCard"
                            ]
                        }
                    }
                }
            },
            "additionalProperties": false
        },
        "mrzScanOption": {
            "type": "string",
            "description": "The mrzScanOption determines whether a field is considered optional, mandatory, disabled or follows a default behavior.",
            "enum": [
                "mandatory",
                "optional",
                "disabled",
                "default"
            ]
        },
        "minConfidenceField": {
            "type": "integer",
            "description": "The minimum field confidence determines the minimum confidence a field text needs to reach in order to be taken into account.",
            "minimum": 0,
            "maximum": 100
        },
        "mrzConfig": {
            "description": "Configuration for scanning machine-readable zones (MRZ) of passports and other IDs",
            "type": "object",
            "properties": {
                "mrzFieldScanOptions": {
                    "type": "object",
                    "description": "The fieldmrzScanOptions configure which text fields shall be captured mandatory, optional or not at all.",
                    "properties": {
                        "surname": {
                            "$ref": "#/definitions/mrzScanOption"
                        },
                        "givenNames": {
                            "$ref": "#/definitions/mrzScanOption"
                        },
                        "dateOfBirth": {
                            "$ref": "#/definitions/mrzScanOption"
                        },
                        "dateOfExpiry": {
                            "$ref": "#/definitions/mrzScanOption"
                        },
                        "documentNumber": {
                            "$ref": "#/definitions/mrzScanOption"
                        },
                        "documentType": {
                            "$ref": "#/definitions/mrzScanOption"
                        },
                        "issuingCountryCode": {
                            "$ref": "#/definitions/mrzScanOption"
                        },
                        "nationalityCountryCode": {
                            "$ref": "#/definitions/mrzScanOption"
                        },
                        "sex": {
                            "$ref": "#/definitions/mrzScanOption"
                        },
                        "personalNumber": {
                            "$ref": "#/definitions/mrzScanOption"
                        },
                        "optionalData": {
                            "$ref": "#/definitions/mrzScanOption"
                        },
                        "mrzString": {
                            "$ref": "#/definitions/mrzScanOption"
                        },
                        "checkDigitDateOfExpiry": {
                            "$ref": "#/definitions/mrzScanOption"
                        },
                        "checkDigitDocumentNumber": {
                            "$ref": "#/definitions/mrzScanOption"
                        },
                        "checkDigitPersonalNumber": {
                            "$ref": "#/definitions/mrzScanOption"
                        },
                        "checkDigitDateOfBirth": {
                            "$ref": "#/definitions/mrzScanOption"
                        },
                        "checkDigitFinal": {
                            "$ref": "#/definitions/mrzScanOption"
                        },
                        "vizAddress": {
                            "$ref": "#/definitions/mrzScanOption"
                        },
                        "vizDateOfIssue": {
                            "$ref": "#/definitions/mrzScanOption"
                        },
                        "vizSurname": {
                            "$ref": "#/definitions/mrzScanOption"
                        },
                        "vizGivenNames": {
                            "$ref": "#/definitions/mrzScanOption"
                        },
                        "vizDateOfBirth": {
                            "$ref": "#/definitions/mrzScanOption"
                        },
                        "vizDateOfExpiry": {
                            "$ref": "#/definitions/mrzScanOption"
                        }
                    },
                    "additionalProperties": false
                },
                "mrzMinFieldConfidences": {
                    "type": "object",
                    "description": "The minFieldConfidences configure which fields must reach which confidence thresholds in order to be part of the scan result.",
                    "properties": {
                        "surname": {
                            "$ref": "#/definitions/minConfidenceField"
                        },
                        "givenNames": {
                            "$ref": "#/definitions/minConfidenceField"
                        },
                        "dateOfBirth": {
                            "$ref": "#/definitions/minConfidenceField"
                        },
                        "dateOfExpiry": {
                            "$ref": "#/definitions/minConfidenceField"
                        },
                        "documentNumber": {
                            "$ref": "#/definitions/minConfidenceField"
                        },
                        "documentType": {
                            "$ref": "#/definitions/minConfidenceField"
                        },
                        "issuingCountryCode": {
                            "$ref": "#/definitions/minConfidenceField"
                        },
                        "nationalityCountryCode": {
                            "$ref": "#/definitions/minConfidenceField"
                        },
                        "sex": {
                            "$ref": "#/definitions/minConfidenceField"
                        },
                        "personalNumber": {
                            "$ref": "#/definitions/minConfidenceField"
                        },
                        "optionalData": {
                            "$ref": "#/definitions/minConfidenceField"
                        },
                        "mrzString": {
                            "$ref": "#/definitions/minConfidenceField"
                        },
                        "checkDigitDateOfExpiry": {
                            "$ref": "#/definitions/minConfidenceField"
                        },
                        "checkDigitDocumentNumber": {
                            "$ref": "#/definitions/minConfidenceField"
                        },
                        "checkDigitPersonalNumber": {
                            "$ref": "#/definitions/minConfidenceField"
                        },
                        "checkDigitDateOfBirth": {
                            "$ref": "#/definitions/minConfidenceField"
                        },
                        "checkDigitFinal": {
                            "$ref": "#/definitions/minConfidenceField"
                        },
                        "vizAddress": {
                            "$ref": "#/definitions/minConfidenceField"
                        },
                        "vizDateOfIssue": {
                            "$ref": "#/definitions/minConfidenceField"
                        },
                        "vizSurname": {
                            "$ref": "#/definitions/minConfidenceField"
                        },
                        "vizGivenNames": {
                            "$ref": "#/definitions/minConfidenceField"
                        },
                        "vizDateOfBirth": {
                            "$ref": "#/definitions/minConfidenceField"
                        },
                        "vizDateOfExpiry": {
                            "$ref": "#/definitions/minConfidenceField"
                        }
                    },
                    "additionalProperties": false
                },
                "strictMode": {
                    "type": "boolean",
                    "description": "The strictMode determines whether or not the MRZ must follow the ICAO standard.",
                    "default": false
                },
                "cropAndTransformID": {
                    "type": "boolean",
                    "description": "The cropAndTransformID determines whether or not the image shall be cropped and transformed.",
                    "default": false
                },
                "minConfidence": {
                    "type": "integer",
                    "description": "Sets a minimum confidence which has to be reached in order to trigger a scan result.",
                    "default": 60,
                    "minimum": 0,
                    "maximum": 100
                }
            },
            "required": [
                "strictMode",
                "cropAndTransformID"
            ],
            "additionalProperties": false
        },
        "layoutVehicleRegistrationCertificate": {
            "description": "Contains all the supported field scan options for vehicle registration certificates.",
            "type": "object",
            "properties": {
                "documentNumber": {
                    "$ref": "#/definitions/vehicleRegistrationCertificateField",
                    "description": "The DocumentNumber Field"
                },
                "licensePlate": {
                    "$ref": "#/definitions/vehicleRegistrationCertificateField",
                    "description": "The LicensePlate Field"
                },
                "lastName": {
                    "$ref": "#/definitions/vehicleRegistrationCertificateField",
                    "description": "The LastName Field"
                },
                "firstName": {
                    "$ref": "#/definitions/vehicleRegistrationCertificateField",
                    "description": "The FirstName Field"
                },
                "address": {
                    "$ref": "#/definitions/vehicleRegistrationCertificateField",
                    "description": "The Address Field"
                },
                "firstIssued": {
                    "$ref": "#/definitions/vehicleRegistrationCertificateField",
                    "description": "The FirstIssued Field"
                },
                "manufacturerCode": {
                    "$ref": "#/definitions/vehicleRegistrationCertificateField",
                    "description": "The ManufacturerCode Field"
                },
                "vehicleTypeCode": {
                    "$ref": "#/definitions/vehicleRegistrationCertificateField",
                    "description": "The VehicleTypeCode Field"
                },
                "vehicleIdentificationNumber": {
                    "$ref": "#/definitions/vehicleRegistrationCertificateField",
                    "description": "The VehicleIdentificationNumber Field"
                },
                "brand": {
                    "$ref": "#/definitions/vehicleRegistrationCertificateField",
                    "description": "The Brand Field"
                },
                "vehicleType": {
                    "$ref": "#/definitions/vehicleRegistrationCertificateField",
                    "description": "The VehicleType Field"
                },
                "displacement": {
                    "$ref": "#/definitions/vehicleRegistrationCertificateField",
                    "description": "The Displacement Field"
                },
                "tire": {
                    "$ref": "#/definitions/vehicleRegistrationCertificateField",
                    "description": "The Tire Field"
                }
            },
            "additionalProperties": false
        },
        "vehicleRegistrationCertificateField": {
            "type": "object",
            "description": "Configures scanning options per field",
            "properties": {
                "scanOption": {
                    "description": "Set the scanOption to one of the following: 0 = mandatory, 1 = optional, 2 = disabled. Otherwise, it's defaulted.",
                    "type": "integer",
                    "enum": [
                        0,
                        1,
                        2
                    ]
                },
                "minConfidence": {
                    "description": "Set the minConfidence between 0 and 100. Otherwise, it's defaulted.",
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 100
                }
            },
            "additionalProperties": false
        },
        "vehicleRegistrationCertificateConfig": {
            "description": "Configuration for scanning Vehicle Registration Certificates",
            "type": "object",
            "properties": {
                "vehicleRegistrationCertificate": {
                    "$ref": "#/definitions/layoutVehicleRegistrationCertificate"
                }
            },
            "additionalProperties": false
        },
        "japaneseLandingPermissionConfig": {
            "description": "Configuration for scanning japanese landing permission tickets",
            "type": "object",
            "properties": {
                "dateOfIssue": {
                    "$ref": "#/definitions/japaneseLandingPermissionConfigFieldOption"
                },
                "dateOfExpiry": {
                    "$ref": "#/definitions/japaneseLandingPermissionConfigFieldOption"
                },
                "status": {
                    "$ref": "#/definitions/japaneseLandingPermissionConfigFieldOption"
                },
                "duration": {
                    "$ref": "#/definitions/japaneseLandingPermissionConfigFieldOption"
                },
                "airport": {
                    "$ref": "#/definitions/japaneseLandingPermissionConfigFieldOption"
                }
            }
        },
        "japaneseLandingPermissionConfigFieldOption": {
            "type": "object",
            "description": "Field option for JLP fields",
            "properties": {
                "scanOption": {
                    "description": "Set the scanOption to one of the following: 0 = mandatory, 1 = optional, 2 = disabled. Otherwise, it's defaulted.",
                    "type": "integer"
                },
                "minConfidence": {
                    "description": "Set the minConfidence between 0 and 100. Otherwise, it's defaulted.",
                    "type": "integer"
                }
            }
        }
    },
    "additionalProperties": false
}