code: func (v *Value_Str) Check(schema *Schema) error {
  	switch s := schema.Schema.(type) {
  	case *Schema_Str:
  		maxLen := s.Str.MaxLength
  		if maxLen > 0 && uint32(len(v.Str)) > maxLen {
  			return fmt.Errorf("value is too large: %d > %d", len(v.Str), maxLen)
  		}
  
  	case *Schema_Enum:
  		if !s.Enum.Has(v.Str) {
  			return fmt.Errorf("value does not match enum: %q", v.Str)
  		}
  
  	default:
  		panic(fmt.Errorf("for Value_Str: unknown schema %T", s))
  	}
  
  	return nil
  }
docs: // Check returns nil iff this Value meets the max length criteria, and/or
  // can be used to fill an enumeration value from the provided schema.