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

* 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
  UPDATE - no, I think it's still required to make The Right Thing happen.

* Make CLASS static.

* Change message() to snippet()
  NOTE - already changed Badger::Base XXX_msg() method to explicitly 
  package-scope message() to Badger::Base so that problem is mitigated.
  A subclass can now define a message() method and it will still Just Work[tm]


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::Class::Config
--------------
  
* Add 'constant' as alias for 'method'.  e.g. 'FOO|class:FOO|constant:FOO'


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

* See if we can make this a low-level mixin that we can import into 
  Badger::Utils et al.
  
* make debug enabler export :debug and :dump into module


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

* Finish writing it / cleaning it up and release.


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

* Do we still want to add a higher-level catch() method?


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

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

* 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


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::Log
-----------

* Add code to detect Log::Dispatch objects and forward messages.


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

* This is available in the git repository 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...

* Change if_env to use Badger::Logic so we can specify things like:
      if_env => 'RELEASE_TESTING or AUTOMATED_TESTING'
 


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

* hashlike, listlike, numlike


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

