{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "properties": {
        "speaker": {
            "type": "object",
            "properties": {
                "firstName": {
                    "type": "string"
                },
                "lastName": {
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "bio": {
                    "type": "string"
                }
            },
            "required": [
                "firstName",
                "lastName",
                "email",
                "bio"
            ]
        },
        "session": {
            "type": "object",
            "properties": {
                "title": {
                    "type": "string"
                },
                "abstract": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                },
                "length": {
                    "type": "string"
                }
            },
            "required": [
                "title",
                "abstract",
                "type",
                "length"
            ]
        },
        "conference": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                },
                "beginDate": {
                    "type": "string"
                },
                "endDate": {
                    "type": "string"
                }
            },
            "required": [
                "name",
                "beginDate",
                "endDate"
            ]
        },
        "topic": {
            "type": "object",
            "properties": {
                "primary": {
                    "type": "string"
                },
                "secondary": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            },
            "required": [
                "primary",
                "secondary"
            ]
        },
        "audience": {
            "type": "object",
            "properties": {
                "takeaway": {
                    "type": "string"
                },
                "jobTitles": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "level": {
                    "type": "string"
                }
            },
            "required": [
                "takeaway",
                "jobTitles",
                "level"
            ]
        },
        "installation": {
            "type": "array",
            "items": {
                "type": "string"
            }
        }
    },
    "required": [
        "speaker",
        "session",
        "conference",
        "topic",
        "audience",
        "installation"
    ]
}