import { Json } from "atom.io/foundations/json"; import { MapOverlay } from "atom.io/foundations/overlays"; //#region src/foundations/junction/junction.d.ts type Refinement = (a: A) => a is B; type JunctionEntriesBase = { readonly relations: ([A, B[]] | [B, A[]])[]; readonly contents: [string, Content][]; }; interface JunctionEntries extends Json.Object, JunctionEntriesBase {} type JunctionSchemaBase = { /** Description of the relationship between the two sides */ readonly between: [a: AName, b: BName]; /** How many relations are allowed in each direction? */ readonly cardinality: `1:1` | `1:n` | `n:n`; }; interface JunctionSchema