{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "properties": {
        "stacks": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "type": {
                        "type": "string"
                    },
                    "label": {
                        "type": "string"
                    },
                    "rows": {
                        "type": "integer"
                    },
                    "columns": {
                        "type": "integer"
                    },
                    "size": {
                        "type": "integer"
                    },
                    "plates": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "type": {
                                    "type": "string"
                                },
                                "label": {
                                    "type": "string"
                                },
                                "descriptor": {
                                    "type": "string"
                                },
                                "rows": {
                                    "type": "integer"
                                },
                                "columns": {
                                    "type": "integer"
                                },
                                "size": {
                                    "type": "integer"
                                },
                                "wellsets": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "label": {
                                                "type": "string"
                                            },
                                            "size": {
                                                "type": "integer"
                                            },
                                            "wells": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            }
                                        },
                                        "required": [
                                            "label",
                                            "size",
                                            "wells"
                                        ]
                                    }
                                },
                                "wells": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "index": {
                                                "type": "string"
                                            },
                                            "values": {
                                                "type": "array",
                                                "items": {
                                                    "type": "number"
                                                }
                                            }
                                        },
                                        "required": [
                                            "index",
                                            "values"
                                        ]
                                    }
                                }
                            },
                            "required": [
                                "type",
                                "label",
                                "descriptor",
                                "rows",
                                "columns",
                                "size",
                                "wellsets",
                                "wells"
                            ]
                        }
                    }
                },
                "required": [
                    "type",
                    "label",
                    "rows",
                    "columns",
                    "size",
                    "plates"
                ]
            }
        }
    },
    "required": [
        "stacks"
    ]
}