Context
active/bert-lenses/ (the choose-a-paradigm viewer; bert#77 worked example) renders the model through three lenses over the one kernel. Klir is backed by a real kernel() projection. Bunge has no equivalent: there is no bonds() / structural() accessor, so the lens shell currently filters interactions by endpoint id-type to decide what to show as a bond.
That filter is a presentation grouping, not a validity claim — every validity check still routes through validate_mode(_, Mode::Structural). But it means a formalism rule (what counts as a bond) lives in the shell, against the "zero formalism logic in the shell" discipline.
Ask
Add a structural() projection on WorldModel, parallel to kernel():
- composition (systems / subsystems)
- bonds (system↔system interactions — the structure that separates a system from an aggregate)
- environment (external sources & sinks)
so downstream viewers consume a real projection instead of re-deriving the bond rule.
Why now / priority
Low-urgency cleanup. The shell grouping is fine for the prototype (feat: per-lens structural rendering, bert-lenses bf7375e). Promote to a real projection if/when the bond view proves load-bearing across consumers (BERT mode-selector, Facets).
Refs: bert#77 (worked example), bert#88 (kernel + mode ladder).
Context
active/bert-lenses/(the choose-a-paradigm viewer; bert#77 worked example) renders the model through three lenses over the one kernel. Klir is backed by a realkernel()projection. Bunge has no equivalent: there is nobonds()/structural()accessor, so the lens shell currently filters interactions by endpoint id-type to decide what to show as a bond.That filter is a presentation grouping, not a validity claim — every validity check still routes through
validate_mode(_, Mode::Structural). But it means a formalism rule (what counts as a bond) lives in the shell, against the "zero formalism logic in the shell" discipline.Ask
Add a
structural()projection onWorldModel, parallel tokernel():so downstream viewers consume a real projection instead of re-deriving the bond rule.
Why now / priority
Low-urgency cleanup. The shell grouping is fine for the prototype (
feat: per-lens structural rendering, bert-lensesbf7375e). Promote to a real projection if/when the bond view proves load-bearing across consumers (BERT mode-selector, Facets).Refs: bert#77 (worked example), bert#88 (kernel + mode ladder).