# types/lesson.types.ts

> 49 lines of code and 10 definitions.

Tree: Bane's Lab Content
Language: typescript
Layer: infrastructure
Canonical: https://banes-lab.com/anatomy/content#file-content-types-lesson-types-ts
Source text: https://banes-lab.com/source/content/types/lesson.types.ts.txt

Listed in [types](https://banes-lab.com/api/source/content/types.md), after [types/leak.types.ts](https://banes-lab.com/source/content/types/leak.types.ts.md) and before [types/panel.types.ts](https://banes-lab.com/source/content/types/panel.types.ts.md).

## Definitions

- `SeedSource` (type_alias_declaration, line 3, exported)
- `SeedField` (type_alias_declaration, line 5, exported)
- `Faces` (interface_declaration, line 7, exported)
- `SeedLevel` (type_alias_declaration, line 13, exported)
- `LessonSeed` (interface_declaration, line 16, exported)
- `IncompleteSeed` (interface_declaration, line 31, exported)
- `SeedReport` (interface_declaration, line 36, exported)
- `InvariantStatement` (interface_declaration, line 41, exported)
- `SlotWords` (interface_declaration, line 49, exported)
- `ProfilePrinciple` (interface_declaration, line 56, exported)

## Contained in

- [types](https://banes-lab.com/anatomy/content/folder-content-types.md)

## Source

```typescript
import type { AlgoGrammar, ArchRelations, Lexicon } from "@govlab/context";

export type SeedSource = "algorithms" | "model" | "profile";

export type SeedField = "cause" | "principle" | "problem" | "validation";

export interface Faces {
    readonly algo: AlgoGrammar;
    readonly arch: ArchRelations;
    readonly lex: Lexicon;
}

export type SeedLevel =
    "construction" | "decision-making" | "evaluation" | "mental-model" | "observation" | "principles";

export interface LessonSeed {
    readonly application: readonly string[];
    readonly boundary: null;
    readonly cause: readonly string[];
    readonly decision: string;
    readonly domain: string;
    readonly failureMode: string | null;
    readonly id: string;
    readonly level: SeedLevel;
    readonly principle: string;
    readonly problem: string | null;
    readonly source: SeedSource;
    readonly validation: string | null;
}

export interface IncompleteSeed {
    readonly id: string;
    readonly missing: readonly string[];
}

export interface SeedReport {
    readonly incomplete: readonly IncompleteSeed[];
    readonly seeds: readonly LessonSeed[];
}

export interface InvariantStatement {
    readonly heading: string;
    readonly objector: string;
    readonly parties: string;
    readonly property: string;
    readonly set: string;
}

export interface SlotWords {
    readonly objector: string;
    readonly parties: string;
    readonly property: string;
    readonly set: string;
}

export interface ProfilePrinciple {
    readonly body: string;
    readonly heading: string;
}
```
