The feature model allows extensions in text format, the most used right now is the repoinit extension which is a script in DSL. Writing this in the feature model json format is not user friendly as json properties do not support newlines. We made this a little bit easier with allowing an array of strings instead, but still not user friendly.
We can provide better support for maven based projects by enhancing the maven plugin.
If an extension of type text is specified in the feature model with the value "@file", the plugin looks for a file in the same directory as the feature model. The file must have the same name as the feature file followed by a dash and the name of the extension.
Feature file: src/main/features/myfeature.json
Repoinit : src/main/features/myfeature-repoinit.txt
(Regarding SLING-9721 it might make sense to support different extensions for the file than txt, so we could enhance this and allow that the "classifier and extension is specified by the @file like @file:xssapi.xml which then would look for a file name src/main/features/myfeature-xssapi.xml - but @file should work as well)
The JSON format of a feature is not changed / enhanced - we just make authoring in maven projects easier.