How to get block headers from block hash using P2P API? I have been experimenting with getheaders and one thing I can't seem to figure out is how to get a header for a specific hash, because getheaders doesn't provide this feature.

According to the documentation (and from my own experiments), it looks like the start position provided to the API is NOT included in the header results. 


  Return a headers packet containing the headers of blocks starting right after the last known hash in the block locator object, up to hash_stop or 2000 blocks


I get that this is for the purpose of synchronizing, so the semantic is "I know about this block hash, so send me all the rest I haven't seen yet, which doesn't include this hash". 

But with this there's no way to figure out a block header from a block hash, I always need the previous block's hash to get the current block header. Is there no P2P API (or any trick) that lets me take a block hash and get block headers back?
The block header is part of the block, so you can request the entire thing and just consider the first 80 bytes. Software generally shouldn’t need to do this though.