Custom Property Service
To extend the properties or meta-data on sources, you would need to create your custom property service. This is easily done by inheriting the default property service. In this example, all default behavior of theEnterspeedPropertyService is preserved but grants us the option to extend meta-data.
As you can see, the MapAdditionalProperties and MapAdditionalMetaData can be overridden. Here you only need to add your logic and include your own property + data.
You can also override MapAdditionalMediaProperties and MapAdditionalMediaMetaData to extend media source entities.
Note that we in this example are using StringEnterspeedProperty. You can choose between multiple property types.
(Array, boolean, number, object and so on.)
If you want different logic based on content type or other conditions, you should use Mappers instead.
Example
Registering your new property service
The property service is registered in Umbraco via an IComposer. TheAddUnique extension method replaces the normal property service and implements your own.
Umbraco 9+