Short term:

- Support 'feature probing' via the rules for user interface and to
  determine whether to try to do things (like use transactions).  This
  is a broad idea and includes things such as returning a list of
  possible column types to the user interface or having a flag for
  supporting transactions.  This has been started.

- Robin Berjon suggested a single documentation 'page' that contains a
  list of all the method and what objects they apply to.  This has
  been started.

- Alzabo::ObjectCache::Store::RDBMS - this module will also do syncing
  all in one.  This will allow the caching/syncing to occur across
  multiple machines with multiple processes.

- Expand regression tests for core API - SQLMaker, RDBMSRules.

- Make local $table->{prefetch} work (tied scalar).
  I'm no longer sure this is possible.  My most recent attempt caused
  inexplicable test failures.

- Give the options to save objects to disk in something a bit more
  robust than a serialized object form.  Barrie Slaymaker is working
  on a generic XML language for database schema modelling, to be
  called DBML.

- Non-Mason interface (curses, plain CGI)

- Make caching system more atomic.  There may subtle race conditions
  in there that should be fixed (timestamps are generated more than
  once, which could be a problem, for one).

- Support transactions in the caching system.  this eventually means
  real transactions at the middleware layer.  argh!

Medium term:

- Add an Alzabo::Database class between the schema and table.  This
  will allow multiple databases in a schema (on multiple platforms
  ideally) and allow you to do joins between these databases.  This
  probably raises all sorts of horrid caching and transactional issues
  I haven't yet thought of.

- Attempt to guess relationships when reverse engineering a schema
  without foreign key information.

- Support any and all SQL, of arbitrary complexity.  This is actually
  a decent part of the way there already.

- Rewrite data browser to not suck so much

- Expand data browser to be configurable between sessions (for
  example, to use textarea fields for certain things)

- Help text for all interfaces (some of it should be shared since the
  basic ideas are the same)

- More drivers & rules (Oracle, Sybase, Interbase, Solid, and so on)

- Overhaul foreign key objects so that one relation has one such
  object, shared by two tables.

Long term:

- GUI (preferably both UNIX & Win32 so Tk?)
