The scriptable list framework allows developers to create a list of scriptable objects inside a scriptable object and provides a neat way to modify the values in the inspector. Have a look at this:
The source code to build that scriptable object is this simple: