{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "array",
    "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
            "year",
            "entity",
            "inputs",
            "model"
        ],
        "properties": {
            "year": {
                "type": "integer"
            },
            "entity": {
                "type": "string"
            },
            "subsidiary": {
                "type": "string"
            },
            "inputs": {
                "type": "array",
                "minItems": 1,
                "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                        "url",
                        "kind",
                        "parameters"
                    ],
                    "properties": {
                        "url": {
                            "type": "string"
                        },
                        "kind": {
                            "type": "string",
                            "enum": [
                                "pdf"
                            ]
                        },
                        "parameters": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                                "dimensions": {
                                    "type": "array",
                                    "itemType": {
                                        "type": "object",
                                        "properties": {
                                            "page": {
                                                "type": "integer"
                                            },
                                            "x1": {
                                                "type": "number"
                                            },
                                            "x2": {
                                                "type": "number"
                                            },
                                            "y1": {
                                                "type": "number"
                                            },
                                            "y2": {
                                                "type": "number"
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "processing": {
                "type": "object",
                "properties": {
                    "totals": {
                        "type": "object",
                        "properties": {
                            "totals": {
                                "properties": {
                                    "turnover": {
                                        "type": "number"
                                    },
                                    "profit_before_tax": {
                                        "type": "number"
                                    },
                                    "corporate_tax_paid": {
                                        "type": "number"
                                    },
                                    "deferred_tax": {
                                        "type": "number"
                                    },
                                    "subsidies_received": {
                                        "type": "number"
                                    },
                                    "full_time_equivalents": {
                                        "type": "number"
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "model": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                    "currency",
                    "factor",
                    "headers"
                ],
                "properties": {
                    "currency": {
                        "type": "string"
                    },
                    "factor": {
                        "type": "integer",
                        "enum": [
                            1,
                            1000,
                            1000000
                        ]
                    },
                    "group_char": {
                        "type": "string"
                    },
                    "decimal_char": {
                        "type": "string"
                    },
                    "headers": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "title": {
                                    "type": "string",
                                    "description": "Original column name from the PDF table"
                                },
                                "mapping": {
                                    "type": "string",
                                    "description": "The equivalent column name of `title`",
                                    "enum": [
                                        "country",
                                        "turnover",
                                        "profit_before_tax",
                                        "corporate_tax_paid",
                                        "full_time_equivalents",
                                        "deferred_tax",
                                        "subsidies_received"
                                    ]
                                }
                            },
                            "required": [
                                "title",
                                "mapping"
                            ]
                        }
                    }
                }
            }
        }
    }
}