What are the core Sidekar concepts and terminology?
An entity is the primary Sidekar data structure. An entity contains fields. Sidekar fields come in two flavors: simple and complex. A simple field contains an atomic value like a boolean, float, String, BigInteger, etc.; an object reference to another Sidekar entity; or a (possibly multi-dimensional) array of any of those. The complex fields include things like sets, lists, and maps; the elements of complex fields are always simple fields. An instance of an entity is called an item. The “data” in a Sidekar database is contained in its items. Entities may have one or more indexes associated with them. Indexes serve the same purpose that SQL indexes do: they efficiently map a list of one or more field values to the items that contain those values in those fields, and also have the side effect of sorting the items by those values. A Sidekar database schema consists of the set of entities represented in the database. At runtime, these concepts have Java representations. Entities correspond