GET /dynamic-fields returns the tenant’s custom field definitions (each with its type, visible
roles, and editable roles — see Contract Workspace).
POST /dynamic-fields/commands is a single command endpoint rather than one route per action.
type is one of:
string
required
CreateField | RenameField | UpdateFieldType | UpdateFieldOptions | DuplicateField |
MoveField | ArchiveFieldobject
required
Shape depends on
type — see @alforse/shared’s DynamicFieldBackendCommand for the
discriminated union if you’re generating requests programmatically.