Do you want this to be a public structure or maybe it could be an opaque structure with `git_blame_results_entrycount(blame)` and `git_blame_results_get_entry(blame, index)` accessors? The opaque version seems like it adds negligible overhead and frees you to change the structure of list as needed.

Actually, from a usability standpoint, it seems like it would be nicer if you could look up the hunk by line number instead of just by index (even though the hunk represents a span of lines). If that needs to be efficient, there are various data structures you could use to (maybe skip lists in the hunk entries, for example) for finding the specific line without walking the whole list.

That is, by the way, another advantage of making this opaque - if you wanted to create an array of `git_blame_hunk_internal` that began with a public hunk structure and had a few private fields at the end, you could still easily return pointers to `git_blame_hunk` from the API.