Not necessarily in the scope of this PR but I'm also thinking if we could encapsulate the logic around any acceptable variants in Thread keys and they're data types so that something like ```#span_id``` has some logic about which headers to look for and how each might take precedence. Perhaps this could be an extension to ```Thread``` ?