Badger::Class
-------------

* Have DEBUG generate constant DEBUG subroutine (UPDATE: now done)...
  Also think about different debug flags, e.g. DEBUG_THIS, DEBUG_THAT
  UPDATE: Badger::Debug now does this - just need to hook class in

* make debug hook work better: allow import of other items, e.g.
  debug => ':dump'.  Also generate DEBUG constant using any existing
  value of $DEBUG.
  
* AUTOLOAD method to delegate to real class if possible?

* add 'hook' subroutine attribute 

* add a way for B::C subclasses to register hooks that automatically
  get called on import, e.g. for B::Factory::Class to push base()

* Remove class($class, $target) second argument in export hooks
  because UBER should now handle that - needs testing

* Make CLASS static


Badger::Codec
--------------

* encoded()/decoded() methods (e.g. for utf8)

* update docs to clarify the fact that utf8, etc., are available as named
  codecs via Encode/Encoding modules.


Badger::Config
--------------

* Just a basic implementation at moment.  Merge in TT3 config, AppConfig
  and other stuff.


Badger::Debug
-------------

* See if we can make this a low-level mixin that we can import into 
  Badger::Utils et al.


Badger::Docs
------------

* Finish writing it / cleaning it up and release.


Badger::Exception
-----------------

* needs good cleanup


Badger::Factory
---------------

* Split post-find operations into separate methods (and lower case).  
   e.g. find_ref_array(), find_ref_hash()
   
* Hmmm... maybe don't lower case but do sanitise, e.g. 
  find_ref_ARRAY(), find_ref_Your_Module() vs
  find_ref_array(), find_ref_your_module()

* Subclass out into base class (returns loaded module name), object
  creator, object creator + cache (e.g. for hub), or whatever.


Badger::Filesystem
------------------

* directory files/directories/dirs as grep across children

* need to handle encoding better in read_file() and write_file() methods.

* read-only filesystem option

* write_file() should have an option for writing to a temporary file and
  renaming into place to avoid race conditions.

* I'm considering refactoring this.  I'd like to unify the different
  filesystem-specific formats to an underlying URI-based one.  It would
  require a lens (combined parser + presenter) for each O/S.  Unix (inc
  Mac OSX) are simple, Win32 isn't hard.  Delegate to File::Spec for 
  everything else.

  Some info about Win32 path <-> uri translation, snarfed from 
  http://blogs.msdn.com/ie/archive/2006/12/06/file-uris-in-windows.aspx
  
  For the UNC Windows file path
     \\laptop\My Documents\FileSchemeURIs.doc

  The corresponding valid file URI in Windows is the following:
     file://laptop/My%20Documents/FileSchemeURIs.doc

  For the local Windows file path
     C:\Documents and Settings\davris\FileSchemeURIs.doc

  The corresponding valid file URI in Windows is:
     file:///C:/Documents%20and%20Settings/davris/FileSchemeURIs.doc 
  
  Functions currently used from File::Spec are: catpath, catdir, 
  canonpath, splitpath, splitdir, filename_is_absolute, abs2rel, 
  no_upwards.  Most of those can be moved out to lenses.  Path 
  manipulation becomes much easier internally when the path can be
  stored as a list of path nodes.


Badger::Storage
---------------

* This is available in subversion but not yet included in the released
  distribution.

* unify parameter parsing and identity definition between filesystem and
  database storage modules.

* get/put which take data / return id

* fetch/store which returns 

* create/destroy   connect/disconnect  open/close


Badger::Test
------------

* Could do with some proper testing.  Although all the other test scripts
  do tend to thrash it quite well...


Badger::Utils
-------------

* Consider subclassing.


Badger::Factory
---------------

* have it bind fetch methods to item/items if undefined, e.g
  node => item, nodes => items.

* support multi-element names, e.g. node.foo.bar


BadgerX
-------

* add path to any bases missing it

* document



Longer Terms Goals / Larger Projects
------------------------------------

* incorporate re-write of AppConfig into Badger::Config

* consider doing the same with Pod::POM into Badger::Pod and combining
  with Badger::Docs.  (update: doing now)

* Finish cleaning Badger-Web and release

* Finish refactoring Badger-Database and release


docs
----
Badger::Factory
