Some of the known use cases such as the mentor list or the newcomers task have "complex" data types such as Mentor or TaskType. It would be nice to support references completely but building the corresponding form would be challenging and potentially lead to a bad UX.
We can restrict references to the first level of depth in the JSON schema to support the mentioned cases.
Data schema:
"properties": { "copyedit": { "type": { "$ref": "#/$defs/TaskType" }, "default": {} }, "$defs": { "TaskType": { "type": "object", "properties": { "disabled": { "type": "boolean", "default": false }, "templates": { "type": "array", "items": { "type": "string" } }, "excludedTemplates": { "type": "array", "items": { "type": "string" } }, "excludedCategories": { "type": "array", "items": { "type": "string" } }, "excludedSections": { "type": "array", "items": { "type": "string" } }, "type": { "type": "string" }, "group": { "type": "string" }, "learnmore": { "type": "string" }, "maxTasksPerDay": { "type": "number" }, "maximumLinksToShowPerTask": { "type": "number" } }, "required": [ "disabled", "templates", "type", "group" ], "additionalProperties": false } },
Note that default being {} is invalid, we should think of what are the common default values across task types.
The task is to modify the form builder to support such case. It should not require any new component.