code wiki / (root) / nx_ecotone.nx

nx_ecotone.nx

buildroot/runtime/nx_ecotone.nx

12029 B286 linesdepth 2pulls 2 transitivereach 1 importersview sourcekind library
docsdependenciesstructsconstsfunctions

about

nx_ecotone.nx -- ecological design at ecosystem transition zones. Per META-CARDINAL feedback-regenerative-stewardship-doctrine-captain-moroni: an ecotone is the transition between two ecosystems (forest-to-meadow, grassland-to-savanna, riparian-to-upland, desert-to-oasis). Ecotones host highest biodiversity because organisms from both adjacent systems can occupy the gradient. They are also where regenerative intervention has HIGHEST LEVERAGE. V1 ships sealed enum of ecotone transition types + sealed enum of candidate-species roles + companion-plant compatibility matrix + per-ecotone succession trajectory at 5/10/25/50/100 year horizons. Per [[feedback-real-playtest-loop-not-just-logs]] honest scope: per- site selection is operator-attested; substrate provides the design substrate, never claims unique knowledge of any specific site. Composes: nx_phenology -- species timing co-design nx_pollinator -- pollinator requirements per species nx_disturbance -- some ecotones depend on disturbance regime nx_microclimate -- microclimate gates species selection nx_covenant -- Indigenous + landowner consent for any planting Gap list (V1 honest perf verdict): - species enum is illustrative (V2 ingests species DB via nx_hypha from USDA PLANTS / GBIF / regional flora authorities) - companion-plant matrix is per-functional-role (V2 species-level) - succession trajectories are at functional-class granularity genealogy_id: nishi_metacardinal_2026-05-19_regenerative_stewardship lineage_id: substrate_ecotone_v1 nx_safety_envelope: intended_use: "Ecotone transition modeling + species role matching + companion matrix + succession trajectory; substrate informs gardener, per-site selection is operator + ecologist" sil_target: SIL2 evidence: [enum_sealed, succession_at_5_horizons, invasive_flag_per_role_recommended]

dependencies 2 imports · 1 importers

nx_syscalls.nx nx_tier.nx nx_ecotone.nx nx_ecotone_test.nx

imports: nx_syscalls.nxnx_tier.nx

imported by: nx_ecotone_test.nx

structs

none

consts

48const NX_ET_FOREST_MEADOW: nx_int = 0
49const NX_ET_GRASSLAND_SAVANNA: nx_int = 1
50const NX_ET_RIPARIAN_UPLAND: nx_int = 2
51const NX_ET_DESERT_OASIS: nx_int = 3
52const NX_ET_WETLAND_UPLAND: nx_int = 4
53const NX_ET_ALPINE_TIMBERLINE: nx_int = 5
54const NX_ET_COASTAL_DUNE: nx_int = 6
55const NX_ET_FOREST_CLEARCUT: nx_int = 7 // restoration context
56const NX_ET_STRIPMINE_RECLAMATION: nx_int = 8
57const NX_ET_URBAN_GREENSPACE: nx_int = 9
58const NX_ET_N_TRANSITIONS: nx_int = 10
68const NX_SR_CANOPY_DOMINANT: nx_int = 0 // mature canopy tree
69const NX_SR_CANOPY_PIONEER: nx_int = 1 // fast-growing pioneer (e.g. paulownia)
70const NX_SR_NITROGEN_FIXER: nx_int = 2 // legume / actinorhizal
71const NX_SR_UNDERSTORY_SHRUB: nx_int = 3
72const NX_SR_GROUND_COVER: nx_int = 4
73const NX_SR_HERBACEOUS_PERENNIAL: nx_int = 5
74const NX_SR_GRAMINOID: nx_int = 6 // grasses + sedges
75const NX_SR_SOIL_FUNGI_PARTNER: nx_int = 7 // mycorrhizal partner
76const NX_SR_POLLINATOR_NECTAR: nx_int = 8 // bee/butterfly/hummingbird-attractor
77const NX_SR_WILDLIFE_FOOD: nx_int = 9 // bird/mammal-food
78const NX_SR_RIPARIAN_BANK_STABILIZER: nx_int = 10 // willow/cottonwood class
79const NX_SR_INVASIVE_RISK_FLAG: nx_int = 11 // explicit flag
80const NX_SR_N_ROLES: nx_int = 12
86const NX_SU_PHASE_PIONEER_0_5_YR: nx_int = 0
87const NX_SU_PHASE_EARLY_5_25_YR: nx_int = 1
88const NX_SU_PHASE_MID_25_50_YR: nx_int = 2
89const NX_SU_PHASE_LATE_50_100_YR: nx_int = 3
90const NX_SU_PHASE_OLDGROWTH_100_PLUS: nx_int = 4
91const NX_SU_PHASE_N_PHASES: nx_int = 5
95const NX_ET_V_DESIGN_OK: nx_int = 0
96const NX_ET_V_MISSING_FUNCTIONAL_ROLE: nx_int = 1 // gap in role coverage
97const NX_ET_V_INVASIVE_FLAGGED: nx_int = 2 // chosen species invasive
98const NX_ET_V_SUCCESSION_GAP: nx_int = 3 // phase not covered
99const NX_ET_V_INVALID: nx_int = 99
100const NX_ET_V_N_VERDICTS: nx_int = 4
163const NX_SR_BIT_CANOPY_DOM: nx_int = 1
164const NX_SR_BIT_CANOPY_PIO: nx_int = 2
165const NX_SR_BIT_N_FIXER: nx_int = 4
166const NX_SR_BIT_SHRUB: nx_int = 8
167const NX_SR_BIT_GROUND: nx_int = 16
168const NX_SR_BIT_PERENNIAL: nx_int = 32
169const NX_SR_BIT_GRASS: nx_int = 64
170const NX_SR_BIT_MYCO: nx_int = 128
171const NX_SR_BIT_POLL: nx_int = 256
172const NX_SR_BIT_WILDLIFE: nx_int = 512
173const NX_SR_BIT_BANK: nx_int = 1024
174const NX_SR_BIT_INVASIVE: nx_int = 2048

functions

104func nx_et_transition_is_valid(t: nx_int) -> nx_int
112func nx_sr_role_is_valid(r: nx_int) -> nx_int
called by 1: main
120func nx_su_phase_is_valid(p: nx_int) -> nx_int
called by 1: main
128func nx_et_v_is_valid(v: nx_int) -> nx_int
139func nx_sr_is_structural(r: nx_int) -> nx_int
called by 1: main
153func nx_sr_is_provisioning(r: nx_int) -> nx_int
called by 1: main
178func nx_sr_role_to_bit(r: nx_int) -> nx_int
called by 1: main
200func nx_et_canonical_required_roles(t: nx_int) -> nx_int
245func nx_et_role_coverage_gap(transition: nx_int,
263func nx_et_classify_design(transition: nx_int,
282func nx_et_v_is_concerning(v: nx_int) -> nx_int
called by 1: main calls 1: nx_et_v_is_valid