I mean a document (the word "document" here used loosely) that contains your character's information that is viewable by everyone playing in the same game as you, or at the very least viewable by both you (the player) and the DM. As a DM, it is critical that both my players and I be able to look at the same character sheet.
On a technical note, having a document or link sharing system should be trivial (one of my products is document management technologies, I know how I'd solve it). And it makes a lot of sense, you get a lot of happiness for a little bit of work and disk space.
I can understand an argument for wanting to avoid automated rules adjudication - though I'm not sure the merits of that argument wholly validate it - but I think have the ability to put dice-rolling macros into your sheet for commonly-rolled expressions is a reasonable and easily-implemented feature. In fact, it's a standard feature in nearly every extant VTT.
Enabling the VTT macros in the char sheet means the char sheet has to be modeled inside the VTT and not just a posted Word or Excel document. It certainly encroaches on that. I suspect this is a line Roll20 is hesitant to cross, for now. I would agree.
However, consider this game situation. I have a 12 for my Climb skill (let's say 8 ranks +4 dex).
With zero in-VTT support, when I want to make my check, I could type:
I roll a Climb check at 1d20+12
The GM would see my result as:
Janx: I roll a Climb check at 1d20+12=18
There could be a d20 Skill check macro loaded that let's me type:
/skill Climb 12
and the screen sends:
Janx rolls 18 for Climb
If the VTT has the runtime variables (globals) like mIRC does, I could load up my skills pre game with commands like "/skill Climb=12"
and then in the game I send:
/skill Climb
and it sends back:
Janx rolls 18 for Climb
With any of these variants, the VTT itself doesn't have to hold or manage my character sheet for useful automation. I can easily consult my paper char sheet (actually, I use my iPad and the Numbers spreadsheet app) for my stats as needed.
Macros can handle doing the automation, and depending on how robust that system is, it can handle the whole problem.
If the VTT includes and import/export of these "runtime" variables, the user can save their game state seperately. Or somebody could write an external CharSheet manager app to take the import/export file, parse it and add the data to bring in your char sheet data back into the VTT's variables so the macros can use them.
I would also recommend having autocomplete/intellisense for your chat interface with regards to macros. Note, I assume like I did for IRC, macro comamnds are launched in the chat window, often prefaced with a / to differentiate them from normal speech.
In which case, take the following function definition for a macro (in pseudo-code):
macro SkillCheck(SkillName from SkillList, SkillLevel as Number)
note, I'm using a VB-like syntax. As a user, the moment I start typing "/skill" Intellisense should be showing me all the macros that start with skill. Next, when I lock in "/SkillCheck" note how it solve for case-sensitivity. When I press space, it should be showing me a list of Skills to pick from the SkillList (an enum data structure defined outside the Macro, that the Macro uses).
Continuing the example, I'll press cl which will jump to Climb from the list, and press space to type a number. The number will use the dice parser, so I could type "12" or "1d6" and it would know what to do with it.
the final command I enter will be:
/SkillCheck Climb 12
but I have less typing to do, and am not going to make a mistake in entering anything. The parser won't let me screw up and reduces my keystrokes.
Intellisense is the number one reason I like coding in Visual Studio. It speeds up development, and actually helps me explore the system, because I can start typing the name of something, and it shows me all the possible things with that name, and then if I choose one, it shows me their parameters so i get it right the first time.
If you can get your command parser running that smooth, it should make your system very easy to use at the keyboard.