* Remove V1 of the mod version parser and shift V2 up to be V1
* Add a parser for mod.cg files, and refactor the the mod-version.cg
files to push the appropriate content up to the mod.cg
* Remove the concept of "silent" from BaseModel along with logging
each event as they are fired (which is what really prompted the
need for it in the first place)
* Move use of the Storage class to be completely the province of the
controllers most closely related to models affected
* Convert the ModVersionController to the ModController and have it
take on responsibility for choosing the mod version
* Update BaseModel to support simple accessors for the current state
* Update CraftingPlan to be able to remove uncraftable items
* Implement the Mod model
* Tweak style of quantity label in output box to be more visible
* Move data files for all mods under a directory for the specific
version of the mod
* Add a `silent` property to the base model to prevent models which
shouldn't be observed from emitting events
* Change the term "itemSlug" to just "slug" across the board
* Change all models so that they don't require their parent in their
constructors and so that they don't automatically add themselves to
their parents lists
* Remove a bunch of unnecessary event triggering
* Tighten up access to various lists of children across all models
* Refactor the guts of the V2 parser into an abstract base class so
it can be used for other parsers in the future
* Remove a number of unused methods
* Refactor location of all data files to include a subdirectory
for the mod version
* Update the BaseModel class to allow models to load themselves from
any text file (whether JSON or CG)
* Refactor ModPack & ModVersion to move the laoding functionality in
one into the other (and use the new stuff in BaseModel)
* Move the parser versions into a new subdirectory which allows for
future additional parsers
* Rewrite the crafting algorithm to recursively find all the steps
involved and then resolve how many times each needs to be run.
* Update the base controller to debounce calls to refresh
* Fix a few erroneous recipes for IC2-Classic
When selecting an item, it would formerly just update the text of the
name field without adding the item. The fix is to make it add the
item automatically.
* Add output box to the crafting table view
* Add remaining crafting patterns to all MC 1.7.10 recipes
* Add all crafting patterns to Buildcraft 6.2.6
* Disable mods which don't have patterns yet
* Add the Url constants for computing urls from templates
* Add the `findItemDisplay` to ModPack (along with tests) and remove
all replace all uses of `getPathSlugs` with it
* Changed "version" to "dataVersion" in data format
* Changed the "modName" and "modVersion" fields on the ModVersion
class to remove the "mod" prefix and changed the data format to
match
* Change the Stack class to use the itemSlug instead of the item
itself
* Update the ModVersion and ModPack classes to include methods for
recording a correspondence between slugs and names. Update code
which displays items from stacks to use these methods to determine
display names.
* Add a reference from Recipe back to the item it creates
* Make the Minecraft "mod" enabled at all times
* Sort the list of mods to move required mods to the top
* Automatically enable a mod which has a recipe selected (e.g., from
a query param)
* Update the router to understand /item/:name routes in addition to
v1.0-style parameterized routes
* Add support for updating the current URL based upon the item being
viewed
* Change LandingPage* to ItemPage*