Current section
Files
Jump to
Current section
Files
include/lc_developmental_events.hrl
%%%-------------------------------------------------------------------
%%% @doc Behavioral event definitions for Developmental Silo (τ=40).
%%%
%%% Events related to ontogeny, critical periods, and plasticity.
%%%
%%% @end
%%%-------------------------------------------------------------------
-ifndef(LC_DEVELOPMENTAL_EVENTS_HRL).
-define(LC_DEVELOPMENTAL_EVENTS_HRL, true).
-include("lc_events_common.hrl").
%%% ============================================================================
%%% Critical Period Events
%%% ============================================================================
-record(critical_period_opened, {
meta :: #lc_event_meta{},
individual_id :: individual_id(),
period_type :: sensory | motor | cognitive | social,
plasticity_boost :: float(),
expected_duration_generations :: non_neg_integer()
}).
-record(critical_period_closed, {
meta :: #lc_event_meta{},
individual_id :: individual_id(),
period_type :: sensory | motor | cognitive | social,
actual_duration_generations :: non_neg_integer(),
learning_achieved :: float()
}).
%%% ============================================================================
%%% Plasticity Events
%%% ============================================================================
-record(plasticity_changed, {
meta :: #lc_event_meta{},
individual_id :: individual_id(),
plasticity_before :: float(),
plasticity_after :: float(),
change_cause :: age | experience | stress | development
}).
%%% ============================================================================
%%% Developmental Stage Events
%%% ============================================================================
-record(developmental_stage_reached, {
meta :: #lc_event_meta{},
individual_id :: individual_id(),
stage_before :: atom(),
stage_after :: atom(),
age_generations :: non_neg_integer(),
fitness_at_transition :: float()
}).
-record(metamorphosis_triggered, {
meta :: #lc_event_meta{},
individual_id :: individual_id(),
stage_before :: atom(),
stage_after :: atom(),
structural_changes :: #{
neurons_added => non_neg_integer(),
connections_rewired => non_neg_integer()
},
fitness_before :: float()
}).
%%% ============================================================================
%%% Canalization Events
%%% ============================================================================
-record(canalization_increased, {
meta :: #lc_event_meta{},
individual_id :: individual_id(),
canalization_before :: float(),
canalization_after :: float(),
perturbation_resistance :: float()
}).
-record(heterochrony_detected, {
meta :: #lc_event_meta{},
individual_id :: individual_id(),
timing_deviation :: float(),
affected_traits :: [atom()],
fitness_impact :: float()
}).
-record(developmental_milestone, {
meta :: #lc_event_meta{},
individual_id :: individual_id(),
milestone_type :: first_signal | first_action | first_success | maturity,
age_generations :: non_neg_integer(),
performance_level :: float()
}).
%%% ============================================================================
%%% Type Exports
%%% ============================================================================
-type developmental_event() :: #critical_period_opened{} | #critical_period_closed{} |
#plasticity_changed{} |
#developmental_stage_reached{} | #metamorphosis_triggered{} |
#canalization_increased{} | #heterochrony_detected{} |
#developmental_milestone{}.
-endif. %% LC_DEVELOPMENTAL_EVENTS_HRL