Sources should be "remembered". A lot of the times I use the same churchbooks as a source. When I have added a churchbook as a source, the software should remember the same churcbook when I search for it, and all I should need to do is to add the pagenumber of where data is.
In my software that is what I'm doing, and ofcourse I can then also add url's to the source so that an online sourcepage could be linked.
A lot of our sources are coming from offline books, newspapers, gravestones and a lot of other sources, you need to have a source tool that can be used as a source database for every kind of sources. So if I find my information in a book, I need to have the possibility to add the name of the book, the authors, the publishers and published year, and the pagenumber. This book (source) should then be saved in a database, so that the next time someone is adding (or looking for) the same book as a source, the Geni software should have a possibility to make a search either automatically or manually, to find the same source.
There should also be a possibility to merge sources that obviously are the same or that curators/pros find to be the same source, but are written in a different way by different users, then you would in time have a good source database with good sources.
So if I wanted to look for a churchbook for a parish in Norway, among the sources on Geni, I could search either word in the sources database. For churchbooks i usually write "Kirkeboken for Kongsberg, nr. 4, 1756 - 1768" which translated to english means "Churchbook for Kongsberg, no. 4, 1756 - 1768", ofcourse since Geni is an international site, sources should be categorised under which country they are in and what type of sources they are.
What is needed in a source citation is:
Media: Book, film, manuscript, newspaper, gravestone, electronic, video, map, photography, other (and a lot of other types of sources).
Author
Title
Publisher/date
And for the main sources database there need to be a note field, where other information can be written, like email-addresses, webaddresses, and that the source doesn't have pagenumbers and a lot of other things that apply to the general source.
On top of that there need to be an area where you can write the specific source information for the event, like pagenumber, specific notes for the event, exact wording of what the source say and a field where you can grade the quality of the source in primary, secondary, tertiary and worse.
In other words make it like most other offline genealogical software does it, you don't have to try to invent the wheel again.