Source:
Local role: Recursive declarative node used to build goal hierarchies.
Big-picture role: Input specification for hierarchy builders that construct Goal trees without introducing domain-specific teleology.
Inheritance:
- dataclass
Fields:
- kind: str (
finalorintermediate) - actor_id: str
- target_condition: dict
- horizon: dict
- priority: float
- status: str
- children: list[GoalBuildStep]
- metadata: dict
Example:
from ometeotl_core.model.goals import GoalBuildStep
# Describe a two-level goal hierarchy declaratively before materializing it
root_step = GoalBuildStep(
kind="final",
actor_id="actor-1",
target_condition={"arrived": True},
horizon={"window": 10},
priority=1.0,
status="active",
children=[
GoalBuildStep(
kind="intermediate",
actor_id="actor-1",
target_condition={"en_route": True},
priority=0.8,
status="active",
),
],
)
See also:
