Allow users to set some moderate number of name/value attributes on their account. These attributes could be used internally by SL (for example, for the non-group titles in
VWR-2212, or even to take over some of the existing Profile elements), displayed on a page in your profile, and queried and possibly even set by LSL scripts.
Attributes could be shared read-write or read-only, and shared with anyone, friends, or members of a group. For example:
pub/description - used by text-mode clients for "look" actions.
pub/title - title for "none" group (VWR-2212).
friends/aim - share your AIM only with your friends.
grp/Elfland/title - third level title for the Elfland group, for example role-playing character name.
public/species - a role-playing attribute, not specified by Linden Labs.
grp/Kombat/level (rw) - a role-playing combat attribute, not specified by Linden Labs, readable by group members, writable by group members who have the 'write attributes' ability.
Attributes that are read-only could still be set by you by LSL calls.
Sharing should include sharing by some LSL API, so that role-playing tools could use attributes... but because they're only used by such tools they wouldn't need to even be known to the sim. Eg:
key dataserver_id = llRequestAttribute(agent_key, "grp/Kombat/*"); // request names of attributes for the Kombat group (eg "level/title/hitpoints").
key dataserver_id = llRequestAttribute(llGetOwner(),"pub/species"); // request species attribute (eg 'elf').
llSetUserAttribute(llGetOwner,"species","elf"); // set in some attachment for the 'elf' avatar.