{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "properties": {
        "details": {
            "type": "object",
            "required": [
                "resource"
            ],
            "description": "",
            "properties": {
                "resource": {
                    "type": "string",
                    "description": "The name of the resource providing details.",
                    "format": "topic"
                }
            }
        },
        "tabs": {
            "type": "array",
            "items": {
                "type": "object",
                "required": [],
                "description": "",
                "properties": {
                    "i18nHtmlTitle": {
                        "type": [
                            "string",
                            "object"
                        ],
                        "description": "The (internationalized) HTML title content."
                    },
                    "filter": {
                        "type": "object",
                        "description": "How to filter the events to display on this tab.",
                        "required": [
                            "fields",
                            "values"
                        ],
                        "properties": {
                            "fields": {
                                "type": [
                                    "string",
                                    "array",
                                    "object"
                                ],
                                "description": "The field (JSON pointer) inside the details resource to compare."
                            },
                            "values": {
                                "type": [
                                    "string",
                                    "array",
                                    "object",
                                    "number",
                                    "boolean"
                                ]
                            }
                        }
                    },
                    "columns": {
                        "type": "array",
                        "description": "The list of rows to display for each event.",
                        "required": [
                            "fields"
                        ],
                        "items": {
                            "type": "object",
                            "properties": {
                                "i18nHtmlTitle": {
                                    "type": [
                                        "string",
                                        "object"
                                    ],
                                    "description": "The (internationalized) HTML title content."
                                },
                                "i18nHtmlFormat": {
                                    "type": [
                                        "string",
                                        "object"
                                    ],
                                    "description": "How to format the fields taken from the event.",
                                    "default": "[0]"
                                },
                                "fields": {
                                    "type": [
                                        "string",
                                        "array",
                                        "object"
                                    ],
                                    "description": "The field (JSON pointer) inside the details resource to display."
                                },
                                "link": {
                                    "type": "string",
                                    "description": "The field (JSON pointer) to lookup in the links."
                                }
                            }
                        }
                    }
                }
            }
        },
        "links": {
            "type": "array",
            "description": "Linked resources for cross referencing items in the details resource.",
            "default": [],
            "items": {
                "type": "object",
                "required": [
                    "resource"
                ],
                "description": "",
                "properties": {
                    "resource": {
                        "type": "string",
                        "description": "The name of the resource providing linked data.",
                        "format": "topic"
                    },
                    "field": {
                        "type": "string",
                        "description": "The field (JSON pointer) inside the linked resource item to link.",
                        "default": "url"
                    },
                    "i18nHtmlFormat": {
                        "type": [
                            "string",
                            "object"
                        ],
                        "description": "How to format the link.",
                        "default": "<a href=\"#\">[0]</a>"
                    }
                }
            }
        }
    }
}