Specification/protocol negotiation based on features and versions