{ "type": "CityJSONExtension", "name": "Generic", "uri": "https://www.cityjson.org/extensions/download/v20/generic.ext.json", "version": "1.1.0", "versionCityJSON": "2.0", "description": "Example of an Extension for a generic city object; meant as a template to learn how to construct an Extension", "extraRootProperties": {}, "extraAttributes": {}, "extraSemanticSurfaces": { "+GenericSemanticSurface": { "type": "object", "properties": { "type": { "enum": [ "+GenericSemanticSurface" ] }, "attribute_1": {"type": "number"}, "attribute_2": {"type": "string"} }, "required": [ "type" ], "additionalProperties": false } }, "extraCityObjects": { "+GenericCityObject": { "allOf": [ { "$ref": "cityobjects.schema.json#/_AbstractCityObject" }, { "properties": { "type": { "enum": [ "+GenericCityObject" ] }, "attributes": { "type": "object", "properties": { "my-attribute": { "type": "string" } } }, "geometry": { "type": "array", "items": { "oneOf": [ { "$ref": "geomprimitives.schema.json#/MultiPoint" }, { "$ref": "geomprimitives.schema.json#/MultiLineString" }, { "$ref": "geomprimitives.schema.json#/MultiSurface" }, { "$ref": "geomprimitives.schema.json#/CompositeSurface" }, { "$ref": "geomprimitives.schema.json#/Solid" }, { "$ref": "geomprimitives.schema.json#/MultiSolid" }, { "$ref": "geomprimitives.schema.json#/CompositeSolid" }, { "$ref": "geomtemplates.schema.json#/GeometryInstance" } ] } } }, "required": [ "type" ] } ] } } }