# Declare Capability

> A technique for having each component state in metadata what it provides and what it requires.

Record: `lexicon:declare-capability`
Kind: technique
Layer: [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)
Canonical: https://banes-lab.com/ontology/lexicon#lexicon-declare-capability

Listed in [Lexicon terms](https://banes-lab.com/api/records/lexicon.md), after [Binding Decision Log](https://banes-lab.com/records/lexicon/binding-decision-log.md) and before [Unvalidated Metadata](https://banes-lab.com/records/lexicon/unvalidated-metadata.md).

## Category

- [Metadata / Self-Description / Declarative Systems](https://banes-lab.com/records/lexicon-category/metadata-self-description-declarative-systems.md)

## Refactors

- [Opaque Runtime Behavior](https://banes-lab.com/records/architecture/opaque-runtime-behavior.md)
- [Predictability](https://banes-lab.com/records/architecture/predictability.md)
- [Self-Describing Architecture](https://banes-lab.com/records/architecture/self-describing-architecture.md)
- [Self-Describing API](https://banes-lab.com/records/architecture/self-describing-api.md)
- [Metadata-Driven Design](https://banes-lab.com/records/architecture/metadata-driven-design.md)
- [Metaprogramming](https://banes-lab.com/records/architecture/metaprogramming.md)
- [Reflection](https://banes-lab.com/records/architecture/reflection.md)
- [Introspection](https://banes-lab.com/records/architecture/introspection.md)

## Linked from

- [Anti-patterns](https://banes-lab.com/ontology/principles/architecture-category-anti-patterns.md)
- [Correctness / Determinism / Verification](https://banes-lab.com/ontology/principles/architecture-category-correctness-determinism-verification.md)
- [Metadata / Self-Description / Declarative Systems](https://banes-lab.com/ontology/principles/architecture-category-metadata-self-description-declarative-systems.md)
- [Metaprogramming / Language-Oriented Architecture](https://banes-lab.com/ontology/principles/architecture-category-metaprogramming-language-oriented-architecture.md)
