Transcript Lepiter Page Idea

SeanDeNigris — 2022-03-03 via discord DM I'm generalizing the Transcript Lepiter page idea to having a page representing any object. ⇒ Cards

I made the Lepiter DB configurable as we discussed.

## Configuration

You can set the Lepiter DB in which pages will be created in two ways:

* Globally with `ObjectiveLepiter class>>#database:` * Per-object (e.g. for testing) with `MATPropertyOwner>>#lepiterDB:`

## Loading

The main challenge is that either the domain model or Lepiter can change out from under the other side without warning, so we don't store any object pointers on either side, only UIDs. - Domain Model - has the capability to generate UIDs for certain objects, like LivingLibrary's AuthoredWorks - store the UID of their corresponding Lepiter page, like QuoteMe's Transcripts - Lepiter: The Lepiter pages referencing arbitrary objects do so via reference objects that store the object's UID as well as information about how/where to look for the object. See {{gtClass:MAObjectUIDReference}} for the default implementation which can be overriden in client libraries. An example is Dynabook's {{gtClass:DbObjectUIDReference}}. In order for everything to work, things need to be loaded in this order: 1. Domain model code 2. Domain model data 3. Lepiter DB(s) containing custom pages which reference model objects

## Preparing an Object

Currently, if you want an object to be able to have an associated Lepiter page, add the {{gtClass:MATPropertyOwner}} trait to its class. See the trait's extension methods from this library for API.

Trait