Hi, all. I'm the author of the citeproc-js processor that has figured a bit in this thread (Jakob tipped me off to the discussion last week, I'm a late arrivee).
I can offer a couple of items of information that might be relevant. There was a mention early on that citeproc-js requires E4X for parsing XML, which is not widely implemented in browsers. I've done a little work on that end, and the processor now runs in IE6 and later, Google Chrome and Safari (including iPhone), as well as the gecko-based browsers (Firefox etc). So client-side deployments should be possible. The other item concerns the JSON input format for the processor. The structure of records is as Jakob has outlined in the wiki page. There is also a need for an open description of the use of the item types and field names set in the CSL specification -- the mappings between a user record and a CSL input object. Until now, this has largely been driven by the needs of Zotero, and with a rapid pace of development and the processor closely tied to the Zotero source code, the Zotero code itself pretty much came to serve as the primary reference for this. With citeproc-js now becoming available as a separate product, there is a need for a more accessible description of the mapping recommendations. I've done a little work in the past few days to extract mappings of actual CSL fields in use by Zotero: http://gsl-nagoya-u.net/http/pub/csl-fields/ Note that these mapping tables are descriptive, not prescriptive. They just show the conventions that have been adopted in Zotero, and around which the styles in the Zotero style repository have been constructed. As a practical matter, systems that map records in these patterns should be able to take advantage of the styles in the repository. Frank Bennett