flexible constraint specification