adding d2-proto/lang
adding compose - initial attempt, not fully functional