buildCausalChain method
Builds a causal chain from the knownCausality list, starting from
startConceptId. Returns ordered concept IDs from cause to final effect.
Implementation
List<String> buildCausalChain(String startConceptId, {int maxLength = 5}) {
final chain = [startConceptId];
final visited = <String>{startConceptId};
while (chain.length < maxLength) {
final current = chain.last;
final next = _knownCausality
.cast<CausalRelationship?>()
.firstWhere(
(r) =>
r!.causeConceptId == current &&
!visited.contains(r.effectConceptId),
orElse: () => null,
);
if (next == null) break;
chain.add(next.effectConceptId);
visited.add(next.effectConceptId);
}
return chain;
}