{
    "$id": "https://schemas.cute.engineering/stable/cutekit.manifest.project.v1",
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "description": "A representation of a component project for CuteKit",
    "type": "object",
    "additionalProperties": false,
    "properties": {
        "$schema": {
            "description": "The schema that this manifest conforms to",
            "type": "string"
        },
        "id": {
            "description": "The unique identifier for this manifest",
            "type": "string"
        },
        "type": {
            "description": "The type of this manifest",
            "type": "string"
        },
        "description": {
            "description": "A description of this manifest",
            "type": "string"
        },
        "version": {
            "description": "The version of this manifest",
            "type": "string"
        },
        "externs": {
            "description": "A list of external dependencies",
            "type": "object",
            "patternProperties": {
                ".*": {
                    "type": "object",
                    "properties": {
                        "additionalProperties": false,
                        "id": {
                            "$comment": "@since(0.7) @removed(0.10)",
                            "description": "The unique identifier for this dependency",
                            "type": "string"
                        },
                        "names": {
                            "$comment": "@since(0.7)",
                            "description": "Name under which the extern is installed  might be the package name on linux or MacOS",
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        },
                        "git": {
                            "description": "The git repository to clone",
                            "type": "string"
                        },
                        "tag": {
                            "description": "The tag to checkout",
                            "type": "string"
                        },
                        "shallow": {
                            "$comment": "@since(0.7) @removed(0.10)",
                            "description": "Should the repository be cloned shallowly",
                            "type": "boolean",
                            "default": true
                        },
                        "depth": {
                            "$comment": "@since(0.7) @removed(0.10)",
                            "description": "The depth to clone the repository",
                            "type": "integer",
                            "default": 1
                        }
                    }
                }
            }
        }
    }
}
