So, let's see then:
- Determine result
- Accumulated value of all dice
- Number of dice under, over or equal to a specific value
- Degree of success compared to a specific number
- Result modifiers
- Mathematical operation on final result
- Mathematical operation on each die roll
- Keep and/or drop the X highest and/or lowest values
- Determine mimimum and/or maximum values
- Triggered events
- Exploding dice
- Roll a new dice
- Reroll the die, accumulate the values
- Apply modifiers to the exploded dice
- Specify the reroll limit
- Apply mathematical operations on specific dice results
- Apply mathematical operations on specific roll results
- Miscellaneous
- Input custom dice
- Accomodate for +, -, /, * and %
- System presets as shorthand commands
- Inline notation
- System Requirements
- Safety measures to prevent cheating.
I think that's all. Do note the lack of image representation of dice. Speak up if you really want it, but I personally think it looks more intrusive than anything.
I guess the question then, which is probably going to be the focal point of the next topic, is how you want the code to look like. Primarily a topic of verbose vs compressed.