# Overview
`co3` is a package for file conversion and associated database operations. The `CO3` base class
provides a standard interface for performing conversions, preparing inserts, and
interacting with database schemas that mirror the class hierarchy.

Simplified description of the operational model:

**Goal**: interact with a storage medium (database, pickled structure, VSS framework) with
a known schema.

- **Accessor** to provide access to stored items
- **Composer** to compose common access points (e.g., JOINed tables)
- **Indexer** to index/cache access queries
- **Manager** to manage storage state (e.g., supported inserts, database syncs)
- **Collector** to collect data for updating storage state
- **Database** to collect data for updating storage state
- **Mapper** to collect data for updating storage state
- **Component** to collect data for updating storage state

**CO3** is an abstract base class that makes it easy to integrate this model with object
hierarchies that mirror a storage schema.

# Detailed structural breakdown
There are a few pillars of the CO3 model that meaningfully group up functionality:

- Database: generic to a Component type, provides basic connection to a database at a
  specific address/location. The explicit Component type makes it easy to hook into
  appropriately typed functional objects:
  * Manager: generic to a Component and Database type, provides a supported set of
    state-modifying operations to a constituent database
  * Accessor: generic to a Component and Database type, provides a supported set of
    state inspection operations on a constituent database
  * Indexer: 
- Mapper: generic to a Component, serves as the fundamental connective component between
  types in the data representation hierarchy (CO3 subclasses) and database Components.