Basic file layout
★ First integration spec

Laying out the ground work for the library's API
★ First integration spec passes

The API is validated, but nothing is actually done: new specs are needed
★ New integration spec for stats

This new integration spec, meant to test specifying a character's race has an effect, introduces new requirements for stats, and the API that goes with them.
★ Stats API validated

No more errors on the second integration spec, but the test still fails. Time to fix that!
★ Adding unit tests for stats

The stats API has revealed the #race_bonus method, which is now properly tested.
★ Second integration test passed

Now the effect of a character's race on its stats is implemented.
★ Refactoring of races

Code for races is re-organized, and a very simple DSL used to declare a race's attributes
★ Adding an integration spec for profession and skills

This new integration test develops our API further. Now we have to start implementing the skills system.
★ Minimal implementation of the skills API

Now we can access the relevent skill object through an accessor. Time to unit test the Skill classes.
★ Integration test on profession/skills passes

This rough implementation of the skills system includes a mini-DSL and a global registry of declared skills.
Skills can give the list of all registered skills
More skills

The DSL to register skills has also been improved
Added missing encoding declarations
New skills
Code gardening
★ Helper classes for tables and bonuses
★ Further implementation of stats system
★ New API for the bonuses

Leveraging the BonusReturned module
Using BonusReturner for Skill