{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "$comment": "This should be kept in sync with the validator in packages/flutter_tools/lib/src/flutter_manifest.dart",
    "title": "pubspec.yaml",
    "type": "object",
    "additionalProperties": true,
    "properties": {
        "name": {
            "type": "string"
        },
        "flutter": {
            "oneOf": [
                {
                    "type": "object"
                },
                {
                    "type": "null"
                }
            ],
            "additionalProperties": false,
            "properties": {
                "uses-material-design": {
                    "type": "boolean"
                },
                "assets": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "services": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "fonts": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                            "family": {
                                "type": "string"
                            },
                            "fonts": {
                                "type": "array",
                                "items": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "properties": {
                                        "asset": {
                                            "type": "string"
                                        },
                                        "weight": {
                                            "enum": [
                                                100,
                                                200,
                                                300,
                                                400,
                                                500,
                                                600,
                                                700,
                                                800,
                                                900
                                            ]
                                        },
                                        "style": {
                                            "enum": [
                                                "normal",
                                                "italic"
                                            ]
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "module": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                        "androidX": {
                            "type": "boolean"
                        },
                        "androidPackage": {
                            "type": "string"
                        },
                        "iosBundleIdentifier": {
                            "type": "string"
                        }
                    }
                },
                "plugin": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                        "platforms": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                                "android": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "properties": {
                                        "package": {
                                            "type": "string"
                                        },
                                        "pluginClass": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "ios": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "properties": {
                                        "pluginClass": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "linux": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "properties": {
                                        "pluginClass": {
                                            "type": "string"
                                        },
                                        "dartPluginClass": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "macos": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "properties": {
                                        "pluginClass": {
                                            "type": "string"
                                        },
                                        "dartPluginClass": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "windows": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "properties": {
                                        "pluginClass": {
                                            "type": "string"
                                        },
                                        "dartPluginClass": {
                                            "type": "string"
                                        }
                                    }
                                }
                            }
                        },
                        "androidPackage": {
                            "type": "string"
                        },
                        "iosPrefix": {
                            "type": "string"
                        },
                        "macosPrefix": {
                            "type": "string"
                        },
                        "pluginClass": {
                            "type": "string"
                        }
                    }
                }
            }
        }
    }
}