# Mandatory Over Optional

> Replace an optional dependency with a mandatory one, removing the null-guarded branch so behavior is system-defined not caller-defined.

Record: `algorithms:no-optional`
Kind: algorithm
Canonical: https://banes-lab.com/ontology/algorithms#algorithms-no-optional
Closure: https://banes-lab.com/json/records/algorithms/no-optional/closure

Listed in [Algorithm contracts](https://banes-lab.com/api/records/algorithms.md), after [Immediacy Over Deferring](https://banes-lab.com/records/algorithms/no-deferring.md) and before [Now Over For-Now](https://banes-lab.com/records/algorithms/no-for-now.md).

## Domain

- [Architectural Rules](https://banes-lab.com/records/algorithms-domain/architectural-rules.md)

## Tier

- [leaf](https://banes-lab.com/records/vocabulary/domain-tier-leaf.md)

## Composes

- [Human Factors](https://banes-lab.com/records/algorithms/human-factors.md)
- [Resource Core](https://banes-lab.com/records/algorithms/resource-core.md)

## Math type

- [Logic](https://banes-lab.com/records/reasoning/math-type-logic.md)

## Linked from

- [Architectural Clusters](https://banes-lab.com/ontology/algorithms/algorithms-domain-architectural-clusters.md)
- [The mathematics](https://banes-lab.com/ontology/reasoning/the-mathematics.md)
- [Domain tiers](https://banes-lab.com/ontology/schema/the-vocabulary-domain-tier.md)
