I realize that we don't need to use an extension points. All these will be declared via script (or via Java for hardcoded languages, e.g. Java).

I recommend tailoring CSElementDescriptor with the builder pattern. e.g.
  .setLabel("label")
  .addFeature("name")
  .addFeature("visibility)