YAML files use spaces not tabs.
Use a consistent way to set addon name and table in each module.

Use "local OVALE, Ovale = ..." at the start of each module file to put the
addon name and addon table into file scope in the same way across all
files.  This is just for clarity and code consistency.
Ensure that all CHAT_MSG_ADDON messages use the same prefix across Ovale.
Order the options in the config GUI appropriately.

Options are ordered alphabetically by name by default, not by the order
they are declared.  This fixes the placement of options in the config GUI.
Move "debug" options to the "global" AceDB-3.0 data type.

This makes debug options shared across all toons, which is what is
normally expected.
Move the AceDB-3.0 database from OvaleOptions to Ovale.

The SavedVariables database properly belongs in the core addon file and
moving it there removes a weak dependency on OvaleOptions in many of the
modules.
Implement a minimap icon for quicker access to Ovale options.

The minimap icon can be toggled on and off and can be used by players
without an LDB broker display.
Mark spells which are off-GCD.
Allow determining the maximum cost of a spell with state:PowerCost().

Use the following to get the true cost of a spell:

    state:PowerCost(spellId, powerType)

Add an extra parameter to get the maximum cost of a spell:

    state:PowerCost(spellId, powerType, true)

This can be used for spells that use more power to do more damage, and we
need a way to determine if we exceed that maximum power cost to do maximum
damage with the spellcast, e.g., Ferocious Bite.
Rename private function in OvaleAST for clarity.
Be stricter when parsing "checkbox" and "listitem" parameters.

Verify that the values for those parameters is only "name" or "!name".
Extend parser to accept parameter values that are comma-separated values.

This allows things like "rip=refresh,target_health_pct,25" as a parameter.
The comma-separated values are still subject to variable substitution.
Allow comma-separated values to specify conditions for applying auras.

Extend the syntax for SpellAddBuff-style lists to allow for
"aura=value,condition1,condition2,...", where the conditions all must pass
before the aura value is applied.

This supersedes the "refresh_target_health_pct_N" parameter, which can now
be replaced with "refresh,target_health_pct,N".
Add more logging to state method "IsUsableSpell()".

Be more explicit about whether a requirement has passed or failed in the
simulator.  If the spell has no spell information, then fall back to
checking whether the spell is usable right now.
Fix format strings for logging code.
Add debugging option for power updates.
Blizzard renamed the constant for the power token for Soul Shards in 6.0.
Prefer information from the state machine over the game.

When checking whether a spell is usable, use the information in the state
machine over information from the game.  The state machine reflects
pending changes that might not already be true in the game.
Improve SimulationCraft translator.

* Suggest Metamorphosis to toggle it off.
* There is one Glyph of Dark Soul for all variations of Dark Soul.
* Rain of Fire is a Destruction-only warlock spell.
* Rename BuffDurationIfApplied() to BaseDuration() for brevity.
* Restrict Slice and Dice condition to subtlety rogues.
* Add translation for "max_fb_energy" SimulationCraft operand.

Regenerate reference scripts from SimulationCraft git master branch from
2014-10-23, and pull in improvements into the default scripts.
Warlock: Update default scripts based on SimulationCraft for 6.0.2.