In the spec `hardwareBound` is `boolean`, consider user string (enum): * `required` - MUST use hardware backed * `preferred` - use hardware backed if available, use software otherwise * `discouraged` - DO use software backed