blob: ecccc6e342cde3818ae952bd4a847004065873ac [file] [log] [blame]
{
"$id": "https://github.com/dart-lang/macros/blob/main/schemas/dart_model.schema.json",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"oneOf": [
{"$ref": "#/$defs/Model"}
],
"$defs": {
"MetadataAnnotation": {
"type": "object",
"description": "A metadata annotation.",
"properties": {
"type": {"$ref": "#/$defs/QualifiedName"}
}
},
"Interface": {
"type": "object",
"description": "An interface.",
"properties": {
"metadataAnnotations": {
"type": "array",
"items": {"$ref": "#/$defs/MetadataAnnotation"}
},
"members": {
"type": "object",
"description": "Map of members by name.",
"additionalProperties": {"$ref": "#/$defs/Member"}
},
"properties": {"$ref": "#/$defs/Properties"}
}
},
"Member": {
"type": "object",
"description": "Member of a scope.",
"properties": {
"properties": {"$ref": "#/$defs/Properties"}
}
},
"Model": {
"type": "object",
"description": "Partial model of a corpus of Dart source code.",
"properties": {
"uris": {
"type": "object",
"description": "Libraries by URI.",
"additionalProperties": {"$ref": "#/$defs/Library"}
}
}
},
"Properties": {
"type": "object",
"description": "Set of boolean properties.",
"properties": {
"isAbstract": {"type": "boolean"},
"isClass": {"type": "boolean"},
"isGetter": {"type": "boolean"},
"isField": {"type": "boolean"},
"isMethod": {"type": "boolean"},
"isStatic": {"type": "boolean"},
"isSynthetic": {"type": "boolean"}
}
},
"Library": {
"description": "Library.",
"type": "object",
"properties": {
"scopes": {
"type": "object",
"description": "Scopes by name.",
"additionalProperties": {"$ref": "#/$defs/Interface"}
}
}
},
"QualifiedName": {
"type": "string"
}
}
}