// in main DB concept Slice { GlobalID globalID = aGlobalIDObject(); S caseID; S name; long sliceDumped; // wall time, set before dump starts bool indexed = true; S defaultCaseID() { ret uniqueFileNameUsingMD5_80_v2(name + " " + globalID); } } // in any DB concept Page { S globalID = aGlobalID(); S url, q; } abstract concept AbstractEntry { new Ref page; int count; S key; S ip; new Ref signer; } concept Entry > AbstractEntry { S globalID = aGlobalID(); // TODO: migrate to object S value; } concept MultiLineEntry > AbstractEntry { GlobalID globalID = aGlobalIDObject(); S value; } concept BlobEntry > AbstractEntry { GlobalID globalID = aGlobalIDObject(); long length; S md5; } // in main DB? concept Signer { S globalID = aGlobalID(); S publicKey; bool trusted; S approvedBy; } // in main DB concept Session { S cookie; S selectedSlice; // global ID Page slicePage; // phasing out long googleLogInDate; S googleEmail, googleFirstName, googleLastName; bool googleEmailVerified; } // singleton concept in every DB concept SliceInfo { GlobalID globalID; LS mandatoryBotVMBusIDs; } sclass CentralIndexEntry { Set slices = synchroLinkedHashSet(); }