Currently the only "built in" attributes are position attributes, and we only use a few reserved name attributes. We should expose more for lower level data access and flexibility.
[x] Vertex normals
[ ] Face normals
[ ] Corner normals ("custom normals")
[x] material index
[ ] tangents
[x] vertex colors (color attributes on the face corner domain)
[ ] Index (for each domain) (these will likely be exposed as expressions rather than attributes, since they aren't exactly stored on the data like other attributes)
[x] UV maps
A couple other things to consider:
1. It's possible that some of them will need to be read-only.
2. Some types like "bevel weight" don't fit so well in a more generalized attribute system and should likely be versioned to use more generic types like `CD_PROP_FLOAT`.