- 1.32
  - document API comprehensively
    - functions
    - variables
  - finalize control properties for `single' schema-schema

- 2.01
  - drop
    - "internal file layout"
    - defstructs
    - special handling for format and aux files
    - `db-find-file'
    - various hooks / vars
    - aliases
      - maprecords
      - define-displaytype-from-displayspec
      - define-recordfieldtype-from-recordfieldspec
      - define-enum-type
  - move to "edb-" prefix namespace
  - observer-single and observer-batch protocol
  - add :include control property
  - support connection-based namespaces
    - source
    - data types
    - display types

- eventually
  - write edb-t-timedate.el using abstractions provided by Emacs
  - eliminate @findex and @vindex in docs
  - use examples in "make check"
  - use selected bugs in "make check"
  - use term "table" for collection of records
  - use term "database" for collection of tables
  - synthetic/dynamic/remote/etc data
  - reduce insert/delete lossage, use text properties and/or overlays
  - allow ring or ewoc as "virtual vov"
  - use external tar(1) to access encapsulated file tree
  - extend db-rdb.el to wrap subprocess interaction
  - redesign indexing to avoid befuddling OBOE potential

- think!

  - Namespace cleaning

	Everything should be prefixed w/ "database-" or "db[a-z]-"
	or "edb-" for EDB 1.x.

	This is incompatible w/ early EDB 1.x if we take the hard-line
	approach of guaranteeing no change from what was previously
	documented.  To avoid the hobgoblin-of-small-minds situation, we
	partition the documented items into those that are sound (likely
	to be carried forward to EDB 2.x) and those that are unsound
	(should have been hidden by higher-level abstractions from the
	beginning, but unfortunately wasn't).

	Each item or group of items, whether sound or unsound, must be
	addressed on a case by case basis.  The goal is to introduce
	incompatibility only where it is not so impactful to current
	applications (the sample set being those databases in the
	`examples' subdirectory plus any requests from afield -- to
	date, this latter category has been thunderously silent but who
	knows what the future will drag in from the past).

	Where incompatibility is deemed to be of high impact (the item
	is used and is either sound, or if unsound, unsound only in
	implementation), the docs are to be revised to deprecate (1.x)
	and eliminate (2.x) the item.  Deprecations must be accompanied
	by some kind of migration path or plan.  For incompatibility of
	low impact, the item can simply be deleted from the docs after
	being marked as "documentation to be deleted" for at least one
	release.

	For 2.x, everything should be prefixed with "edb-".  The nice
	hack would be to move 1.x to a point such that switching a
	late-1.x-conforming application to 2.x can be done via a one-line
	sed/elisp script only.  Internals should use "edb--".

  - Terminology tweak

	By EDB 2.x, docs and comments should define "database" as a
	"collection of tables", "table" as a "collection of rows",
	and "row" as an ordered tuple of "columns".  Also, decoupling
	of control connection, reads and commits should be made very
	clear in documentation and function names.

	In this terminology, past (EDB 1.x) behavior can be described
	as "mostly-direct manipulation of a single-table database".

  - Higher abstraction level for EDB 2.x

	The API for EDB 2.x is to focus on three areas: "conversion
	specification", "data source specification" and "presentation
	specification".  In some sense, 2.x is to give up some of the
	flexibility of 1.x (largely unused in practice) in exchange for
	a cleaner overall architecture.  Where possible, specification
	is to be done declaratively rather than functionally.

	The file-reading and -writing bits of EDB 1.x are to be
	generalized into "conversion for read" and "conversion for
	write" function pairs.  The set of built-in pairs to be
	distributed w/ EDB is to be extendable by applications:
	"conversion specification".

	Selected bits of the `displayspec', `recordfieldspec' and
	`sepinfo' structures are to be folded into the "data source
	specification".  Comingling of data source and data source
	specification, as implemented in EDB 1.x using local variables,
	is to be dropped.

	The 2.x "native data source" is to be a tar file (maybe gzipped)
	that may or may not be self-contained; it may specify the actual
	data source as some "non-native data source" outside itself.

	Non-native data sources are to include files, connections to
	network-available databases (e.g., PostgreSQL or web queries),
	and generally, completely synthetic sources (i.e., the output of
	elisp functions).

	Applications do not need to know about "link" or "record index".
	The `link' structure, ring-management code, and `displayspec'
	structure are to be replaced by calls to ewoc.el functions (for
	ordered views) and a congruent hash-table based implementation
	(for unordered views).  Support for indexing by the application
	is to be generalized into r/w/observe access to per-record
	metainfo, opaque to EDB.  These implementation details are to be
	further abstracted as "presentation specification".

  - Better support for relational databases for EDB 3.x
