
Initially posted in the API forum, but apparently belongs here. So here goes: I don't know if anybody else has come forward with this idea, but I would like to propose a new, and semantically rich set of APIs for roll20. I believe that it would be a great boon to the community to design APIs tailored to specific game systems. It has already started, with being able to choose a certain character sheet for a game in question and I think it should be taken much further. Let me outline my reasoning. If you take, for example, the Pathfinder character sheet you will notice, that it is subject to frequent, fundamental changes, that break compatibility with other scripts, trying to import data into it. The reason is, that the sheet data is not encapsulated, but instead each script that depends on the sheet is tightly coupled to it. If the sheet changes, the script breaks. If the underlying Pathfinder game mechanics were decoupled from the user interface and from any scripts manipulating game data, a much higher level of maintainability could be achieved. And depending on the depth of the rule engine implementation, it would be pretty simple to boot. Changes to the core Pathfinder game system are very rare as well, so a solid core design would likely carry over many years. A simple example could be, that a character object would be outfitted with a semantically rich API. The object would have abilities, skills, feats, weapons, armor and so on. Of course each of these would be typed objects according to the particular game rules. An import or any other script could easily access these values as they would be standardized. For example, a Hero Lab bridge would be able to set these, and a separate in-play UI script would show the values and let the player roll dice, or apply conditions or whatever. You would not need a script that does both and the two scripts would be decoupled through the system API intermediary. There would be a great many possibilities to enhance the tactical view on the game through game specific scripts, that would be robust and long lived. And since these scripts would have to do a whole lot less, they would be more easy to develop and be more maintainable. Roll20 functionality is primarily used as a tactical view on the game. In a first step, it would not need to understand the rules, just display stat block values and let the players decide. If the core design is solid, certain game mechanics could be added incrementally. And yes, I would not recommend to make the Hero Lab mistake and create a meta game system that fits all game systems that ever will be, and is so totally generic that it's performance must suffer. After all, this is JS on the browser, so certain restrictions apply. Looking forward to your comments. Would this be possible? Has it been discussed before?