CityJSON uses JSON Schemas to document and validate the data model, schemas should be seen as basically validating the syntax of a JSON document.
A CityJSON Extension is a JSON file that allows us to document how the core data model of CityJSON may be extended, and to validate CityJSON files containing new objects and/or attributes. This is conceptually akin to the Application Domain Extensions (ADEs) in CityGML; see Section 10.13 of the official CityGML documentation.
See the Extensions specifications for v2.0.0 for an overview of how the file should be structured.
This tutorial to create a noise extension guides you through the process, and explains how to validate the extension itself and datasets that uses the extension.
As a template/example, you can have a look at an Extension for CityJSON v2.0 having
+GenericCityObect with a new semantic surface.
Extension to handle GenericCityObject in v1.1
v2.0 | schema | CityJSON core team