Get a list of editors?

I wonder if it is possible to get the editors from an EnumProperty.

I want to display these and want to use the identifier, name and icon to represent them as a selection.
It would also be good to get the fitting Space for the editor.

In the picture below is are the editors.

The Data could be something like this (written by hand):

[ # (identifier, name, description, icon)
    ('VIEW_3D', '3D Viewport', '', 'VIEW3D'),
    ('IMAGE_EDITOR', 'Image Editor', '', 'IMAGE'),
    ('UV', 'UV Editor', '', 'UV'),
    ('CompositorNodeTree', 'Compositor', '', 'NODE_COMPOSITING'),
    ('TextureNodeTree', 'Texture Node Editor', '', 'NODE_TEXTURE'),
    ('GeometryNodeTree', 'Geomerty Node Editor', '', 'NODETREE'),
    ('ShaderNodeTree', 'Shader Editor', '', 'NODE_MATERIAL'),
    ('SEQUENCE_EDITOR', 'Video Sequencer', '', 'SEQUENCE'),
    ('CLIP_EDITOR', 'Movie Clip Editor', '', 'TRACKER'),
    ('DOPESHEET', 'Dope Sheet', '', 'ACTION'),
    ('TIMELINE', 'Timeline', '', 'TIME'),
    ('FCURVES', 'Graph Editor', '', 'GRAPH'),
    ('DRIVERS', 'Drivers', '', 'DRIVER'),
    ('NLA_EDITOR', 'Nonlinear Animation', '', 'NLA'),
    ('TEXT_EDITOR', 'Text Editor', '', 'TEXT'),
    ('CONSOLE', 'Python Console', '', 'CONSOLE'),
    ('INFO', 'Info', '', 'INFO'),
    ('OUTLINER', 'Outliner', '', 'OUTLINER'),
    ('PROPERTIES', 'Properties', '', 'PROPERTIES'),
    ('FILES', 'File Browser', '', 'FILEBROWSER'),
    ('PREFERENCES', 'Preferneces', '', 'PREFERENCES')
]