With Field API in Core I think we are shooting ourselves in the foot if we ship without a UI for it.
That having been said, let's see where we are at.
The Current Field UI / CCK UI still lives in contrib because it is said to be too complex or downright bad to belong in core.
Hence, if we want a Field UI in core we need to make it less complex. If you visit admin/build/types with CCK UI enabled you have have an admin page that needs to achieve all of the following:
- Creating content types
- Edit existing content types' settings
- Delete content types
- Create fields
- Assign created fields to certain content types ("Create field instances")
- Edit existing field instances' settings
- Change the order of the fields in a content type
- Configure the display settings of all fields on a content type depending on the display type (teaser, full node, ...)
Now who is to blame for calling this complex!
So what can be done:
1. - 3. Are essential part of the content types screen and have nothing to with the Field API.
4. Creating fields: For me this doesn't belong here. In Field API content types are bundles which create instances of already existing fields. So why not go the way of the API? IMO Fields deserve their own page in the admin area: Think of admin/build/fields where you can add new fields and existing ones are listed. I created a mock-up of what this could look like:
This very much resembles various other list/add sections in the Drupal admin area so there shouldn't be anything new about it.
5. -7. Adding, editing, ordering field instances: In my proposal this would be left for the bundles' interface, in this case the node type / content type interface. After a field has been created (see above) the workflow would be the following:
visit admin/build/types and notice the "manage fields" link for the content types:
Clicking on one of those "manage fields" links brings you to the following page:
Here you can reorder the fields / field-like things (7.)
If you want to add an existing (!) field to this content type, you click the tab "Add fields" (should probably be "Add field") at the top.
This leaves you here:
There you can select a field and set up the settings of that field (the settings would have to change via JS to reflect the currently selected field (maybe it would even be best to leave out the settings here)). Clicking "Add" at the bottom sends you back to the previous page.
Clicking on edit on one of the fields gives you a similar page to the previous (except the "Select the field" part is gone, of course).
8. Display settings: Even though I understand how crucial this is to certain sites, I would leave this out of the Core Field UI for now (!).