import { INVARIANT_SECTION_ICON } from "#configuration/icons/coordination.icons"; import { INVARIANT_SECTION_ID } from "#core/ids/coordination.ids"; import type { Section } from "#types/document.types"; import { TYPESCRIPT_LANGUAGE } from "#configuration/constants/code.constants"; import { nodeLink as node } from "#domain/converters/link.converter"; const LIFETIME_SHAPE = 'export const RETENTION = ["accumulating", "current-truth", "discharged", "computed"] as const;\nexport const MUTABILITY = ["append-only", "owner-rewritable", "frozen"] as const;\nexport const REMOVAL = ["none", "author", "handler", "producer"] as const;\n\nexport interface Lifetime {\n readonly retention: (typeof RETENTION)[number];\n readonly mutability: (typeof MUTABILITY)[number];\n readonly removal: (typeof REMOVAL)[number];\n}\n\nexport interface LifetimeRegion {\n readonly name: string;\n readonly span: "item" | "field" | "row" | "column";\n readonly lifetime: Lifetime;\n readonly why: string;\n}\n\nexport interface LifetimeDeclaration {\n readonly declared: Readonly>;\n readonly regions: Readonly>;\n readonly seeds: Readonly>;\n}\n\nexport const lifetime: LifetimeDeclaration = {\n declared: {\n "": { retention: "current-truth", mutability: "owner-rewritable", removal: "handler" },\n "": { retention: "accumulating", mutability: "frozen", removal: "none" },\n "": { retention: "computed", mutability: "frozen", removal: "producer" },\n },\n regions: {\n "": [{ name: "", span: "field", lifetime: { retention: "accumulating", mutability: "owner-rewritable", removal: "author" }, why: "" }],\n },\n seeds: { "