Split ingest into two layers so a single project can hold the whole call graph cheaply and accumulate deep (field-level) detail per program over time: