# types/lesson.types.ts

> 48 lines of code and 9 definitions.

Tree: Build tree
Language: typescript
Layer: infrastructure
Canonical: https://banes-lab.com/anatomy/build#file-build-types-lesson-types-ts
Source text: https://banes-lab.com/assets/sources/source.eba47c88fd086e29349923b59b75229e0f5fbeeaf850c70d0e4f38e5d7ae58c5.generated.txt

## Definitions

- `SeedSource` (type_alias_declaration, line 4, exported)
- `Faces` (interface_declaration, line 6, exported)
- `SeedLevel` (type_alias_declaration, line 11, exported)
- `LessonSeed` (interface_declaration, line 14, exported)
- `IncompleteSeed` (interface_declaration, line 29, exported)
- `SeedReport` (interface_declaration, line 34, exported)
- `InvariantStatement` (interface_declaration, line 39, exported)
- `SlotWords` (interface_declaration, line 47, exported)
- `ProfilePrinciple` (interface_declaration, line 54, exported)

## Source

```typescript
import type { AlgoGrammar } from "@govlab/context/algo";
import type { ArchRelations } from "@govlab/context/arch";

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

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

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;
}
```
