# Reflection

Record: `arch:reflection`
Kind: mechanism
Layer: [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)
Severity: contextual
Scope: runtime, metadata, framework
Canonical: https://banes-lab.com/ontology#arch-reflection

## Repair

- Refactored by: Replace with Explicit Interface/Metadata
- Detected by: reflective access to internals
- Violated by: reflection used to bypass contracts/visibility
- Measured by: unsafe reflection count
- Enforced by: lint/security rules

## requires

- [Runtime Type Metadata](https://banes-lab.com/records/lex/runtime-type-metadata.md)

## reinforces

- [Introspection](https://banes-lab.com/records/arch/introspection.md)
- [Runtime Discovery](https://banes-lab.com/records/arch/runtime-discovery.md)

## enables

- [Dynamic Binding](https://banes-lab.com/records/arch/dynamic-binding.md)

## tensions-with

- [Performance/Safety](https://banes-lab.com/records/lex/performance-safety.md)
- [Static Analysis](https://banes-lab.com/records/arch/static-analysis.md)

## tensions

- [Reflection Performance/Safety](https://banes-lab.com/records/tension/performance-safety-reflection.md)
- [Reflection Static Analysis](https://banes-lab.com/records/tension/reflection-static-analysis.md)
