${programmers}
Camel casing takes a string like "the first one" and converts it into a camel form of identifier, "theFirstOne".

But this had some problems when non-programmers are creating storytest tables:
 * A valid identifier in one language would not be in another
 * Certain identifiers can't be used, such as "case", "for", "do", etc in Java.
In addition, unicode can't be used for such names, because in general there is little support for unicode in development tools.

Extended camel is used with all of ${fitLibrary}, taking camel casing one step further. It converts a name into a valid identifier in the language concerned. For example, in Java the name "% discount" is translated into "percent discount", which is then camel-cased into "percentDiscount".

This can result in some weird and/or long identifiers. There's no need to work out such identifiers, however, as an unknown identifier is displayed in a error messages in the report of a table. These weird identifiers don't need to "pollute" the application, as they only need to appear in fixturing code (such as a ${domainAdapter}).

Here's some examples:

|!-fitlibrary.specify.utility.CamelCase-!|

|''actions''|

|''calculate''|
|name   || identifier |
|" hi " || quoteHiQuote |
|^`{}~  || caretBackquoteLeftBraceRightBraceTilde |
|two words      || twoWords |
|2 words        || twoWords |
|cost $         || costDollar |
|!!             || bangBang |
|meet @         || meetAt |
|rick@rimuResearch.com  || rickAtRimuResearchDotCom |
|               || blank |
|case           || case_      |
