Support writing needed extension types

Yeah, that was before @cprice404 asked for the API change