# types/reason.types.ts

> 148 lines of code and 19 definitions.

Tree: Site tree
Language: typescript
Layer: infrastructure
Canonical: https://banes-lab.com/anatomy/tree#file-types-reason-types-ts
Source text: https://banes-lab.com/assets/sources/source.0c52044f6f8c5cb943b8b17a438fd3dc8a5cb306498d8155e3c013dfb9218ead.generated.txt

## Definitions

- `ReasonLayerView` (interface_declaration, line 4, exported)
- `MathTypeView` (interface_declaration, line 12, exported)
- `DimensionView` (interface_declaration, line 22, exported)
- `LensView` (interface_declaration, line 30, exported)
- `ModeView` (interface_declaration, line 42, exported)
- `RepresentationView` (interface_declaration, line 50, exported)
- `MathDomainView` (interface_declaration, line 56, exported)
- `PatternTypeView` (interface_declaration, line 63, exported)
- `ModelView` (interface_declaration, line 69, exported)
- `UniversalAxisView` (interface_declaration, line 78, exported)
- `TestSurfaceView` (interface_declaration, line 86, exported)
- `TechniqueView` (interface_declaration, line 103, exported)
- `InvariantView` (interface_declaration, line 111, exported)
- `CellView` (interface_declaration, line 118, exported)
- `ReasonEdgeView` (interface_declaration, line 123, exported)
- `FoundationLayerView` (interface_declaration, line 129, exported)
- `InvariantGroupView` (interface_declaration, line 134, exported)
- `MapsView` (interface_declaration, line 139, exported)
- `ReasonView` (interface_declaration, line 146, exported)

## Source

```typescript
import type { AxisView, DerivationLoopView, ReasonNodeView, SubstrateView } from "#types/loop.types";
import type { EdgeRef } from "#types/link.types";

export interface ReasonLayerView {
    readonly anchor: string;
    readonly axes: readonly EdgeRef[];
    readonly id: string;
    readonly label: string;
    readonly question: string;
}

export interface MathTypeView {
    readonly anchor: string;
    readonly contracts: readonly EdgeRef[];
    readonly domain: EdgeRef;
    readonly id: string;
    readonly predicateFamily: string;
    readonly question: string;
    readonly yieldsShape: string;
}

export interface DimensionView {
    readonly anchor: string;
    readonly id: string;
    readonly mathNature: string;
    readonly question: string;
    readonly surfaces: readonly EdgeRef[];
}

export interface LensView {
    readonly anchor: string;
    readonly detectedBy: readonly EdgeRef[];
    readonly id: string;
    readonly mathFields: readonly EdgeRef[];
    readonly nature: string;
    readonly question: string;
    readonly surfaces: readonly string[];
    readonly testSurfaces: readonly EdgeRef[];
    readonly universalAxis: EdgeRef;
}

export interface ModeView {
    readonly anchor: string;
    readonly id: string;
    readonly practice: string;
    readonly question: string | null;
    readonly techniques: readonly EdgeRef[];
}

export interface RepresentationView {
    readonly anchor: string;
    readonly expression: string;
    readonly id: string;
}

export interface MathDomainView {
    readonly anchor: string;
    readonly id: string;
    readonly question: string;
    readonly studies: string;
}

export interface PatternTypeView {
    readonly anchor: string;
    readonly id: string;
    readonly viewpoint: string;
}

export interface ModelView {
    readonly anchor: string;
    readonly id: string;
    readonly question: string;
    readonly recursionFrom: string | null;
    readonly recursionTo: string | null;
    readonly sequence: readonly EdgeRef[];
}

export interface UniversalAxisView {
    readonly anchor: string;
    readonly id: string;
    readonly lenses: readonly EdgeRef[];
    readonly question: string;
    readonly subsumes: readonly EdgeRef[];
}

export interface TestSurfaceView {
    readonly anchor: string;
    readonly dimension: EdgeRef;
    readonly evidenceGrounds: readonly EdgeRef[];
    readonly evidenceRequired: boolean;
    readonly evidenceSource: string;
    readonly failureModes: readonly string[];
    readonly id: string;
    readonly invariant: EdgeRef;
    readonly lens: EdgeRef;
    readonly predicateExpression: string;
    readonly predicateGrounds: readonly EdgeRef[];
    readonly predicateType: string;
    readonly techniques: readonly EdgeRef[];
    readonly verdictDomain: readonly string[];
}

export interface TechniqueView {
    readonly anchor: string;
    readonly id: string;
    readonly mode: EdgeRef;
    readonly principle: string;
    readonly surfaces: readonly EdgeRef[];
}

export interface InvariantView {
    readonly anchor: string;
    readonly id: string;
    readonly statement: string;
    readonly surfaces: readonly EdgeRef[];
}

export interface CellView {
    readonly dimension: EdgeRef;
    readonly lens: EdgeRef;
}

export interface ReasonEdgeView {
    readonly from: EdgeRef;
    readonly label: string | null;
    readonly to: EdgeRef | null;
}

export interface FoundationLayerView {
    readonly layer: string;
    readonly mathTypes: readonly EdgeRef[];
}

export interface InvariantGroupView {
    readonly group: string;
    readonly members: readonly EdgeRef[];
}

export interface MapsView {
    readonly foundationLayers: readonly FoundationLayerView[];
    readonly foundationSequence: readonly EdgeRef[];
    readonly invariantGroups: readonly InvariantGroupView[];
    readonly patternOperations: readonly EdgeRef[];
}

export interface ReasonView {
    readonly axes: readonly AxisView[];
    readonly derivationLoop: DerivationLoopView;
    readonly dimensions: readonly DimensionView[];
    readonly edges: readonly ReasonEdgeView[];
    readonly invariants: readonly InvariantView[];
    readonly layers: readonly ReasonLayerView[];
    readonly lenses: readonly LensView[];
    readonly maps: MapsView;
    readonly mathDomains: readonly MathDomainView[];
    readonly mathTypes: readonly MathTypeView[];
    readonly models: readonly ModelView[];
    readonly modes: readonly ModeView[];
    readonly nodes: readonly ReasonNodeView[];
    readonly patternTypes: readonly PatternTypeView[];
    readonly representations: readonly RepresentationView[];
    readonly substrate: SubstrateView;
    readonly techniques: readonly TechniqueView[];
    readonly testSurfaces: readonly TestSurfaceView[];
    readonly uncoveredCells: readonly CellView[];
    readonly universalAxes: readonly UniversalAxisView[];
}
```
