# Containers on the spine

> Every file on the tree tab carries its subject, its concern and, where the name declares one, its variant, read off the file name as described in placement is a…

Page: Anatomy · Reading
Canonical: https://banes-lab.com/anatomy#containers-on-the-spine

Every file on the tree tab carries its subject, its concern and, where the name declares one, its variant, read off the file name as described in [placement is a grammar](https://banes-lab.com/disciplined-methodology/build/placement-is-a-grammar.md), and every concern is tagged to a layer of [the layer spine](https://banes-lab.com/software-architecture/model/the-layer-spine.md). The layers the tree lands on are shown in [C1·a the layers](https://banes-lab.com/anatomy#containers-on-the-spine-panel-a), and what moves between the containers at runtime in [C1·b data flow](https://banes-lab.com/anatomy#containers-on-the-spine-panel-b).

### Roles, slots and layers

A folder's role is read from its depth and its name. The first folder under the member is a container, a folder whose name is a concern folder is a concern, and anything between is a subject folder that exists only because two sets of one concern must not merge. A file whose name the grammar cannot parse carries no slots and no layer, and the page says so rather than guessing one.

The layer a file lands on is a derivation from its concern and never a fact written by hand, which is why the same file shows the same layer on this page and in every check that reads the tree. A folder shows the layer of its concern, and a container shows none, because a container groups by axis and not by layer.

C1·a the layers

```text
configuration
constants: infrastructure
icons: infrastructure
strings: product
core
analyzers: processing
assets: infrastructure
buses: infrastructure
converters: processing
factories: infrastructure
ids: infrastructure
listeners: application
loaders: infrastructure
matchers: processing
normalizers: processing
observers: application
predicates: infrastructure
registries: infrastructure
reporters: operations
stores: application
domain
converters: processing
loaders: infrastructure
models: domain
registries: infrastructure
presentation
components: product
effects: product
records: domain
renderers: product
styles: product
tokens: product
views: product
widgets: product
runtime
coordinators: application
entrypoints: runtime
types
```

C1·b data flow

```mermaid
---
config:
layout: elk
---
flowchart TD
accTitle: anatomy data flow
accDescr: construction and data-flow dependency wiring resolved from source
applyHead_16a712["applyHead"]
attachLearningMap_b10609["attachLearningMap"]
attachSearchToggle_9fba5f["attachSearchToggle"]
countUp_47d887["countUp"]
createElement_5ef66e["createElement"]
expand_3e1974["expand"]
flash_b5a2f4["flash"]
light_1e5f40["light"]
mountCopyright_3c42b4["mountCopyright"]
n1012_42443b["textContent"]
n1238_6f83b0["open"]
n2616_94bc2d["value"]
n2978_6760f9["lit"]
n6438_494541["title"]
n687_557238["className"]
n847_b886cf["nonce"]
nodeText_6eda5e["nodeText"]
openSheet_5162db["openSheet"]
showField_388c70["showField"]
applyHead_16a712 -.->|writes| n1012_42443b
applyHead_16a712 -.->|writes| n6438_494541
attachLearningMap_b10609 -.->|writes| n2978_6760f9
attachSearchToggle_9fba5f -.->|writes| n2616_94bc2d
countUp_47d887 -.->|writes| n1012_42443b
createElement_5ef66e -.->|writes| n1012_42443b
createElement_5ef66e -.->|writes| n687_557238
expand_3e1974 -.->|writes| n1238_6f83b0
flash_b5a2f4 -.->|writes| n687_557238
light_1e5f40 -.->|writes| n2978_6760f9
mountCopyright_3c42b4 -.->|writes| n1012_42443b
nodeText_6eda5e -.->|writes| n1012_42443b
openSheet_5162db -.->|writes| n847_b886cf
showField_388c70 -.->|writes| n2616_94bc2d
classDef kCollab stroke:#7a5c1e,stroke-width:2px;
classDef kEntry stroke:#2f6f4f,stroke-width:2px;
classDef kGate stroke:#8a3324,stroke-width:2px;
classDef kHook stroke:#3a5a8a,stroke-width:2px;
classDef kMethod stroke:#555555,stroke-width:2px;
classDef kState stroke:#5a3a8a,stroke-width:2px;
class applyHead_16a712,attachLearningMap_b10609,attachSearchToggle_9fba5f,countUp_47d887,createElement_5ef66e,expand_3e1974,flash_b5a2f4,light_1e5f40,mountCopyright_3c42b4,nodeText_6eda5e,openSheet_5162db,showField_388c70 kMethod;
class n1012_42443b,n1238_6f83b0,n2616_94bc2d,n2978_6760f9,n6438_494541,n687_557238,n847_b886cf kState;
```

## Links to

- [Placement is a grammar](https://banes-lab.com/disciplined-methodology/build/placement-is-a-grammar.md)
- [The layer spine](https://banes-lab.com/software-architecture/model/the-layer-spine.md)
