2.2. <del> Targeted fields MAY be parsed as a Dictionary Structured Field RFC8941, and implementations are encouraged to use a parser for that format in the interests of robustness, interoperability and security. When an implementation parses a targeted field as a Structured Field, each cache directive will be assigned a value.  For example, max-age has an integer value; no-store's value is boolean true, and no- cache's value can either be boolean true or a list of field names. Implementations SHOULD NOT accept other values (e.g. coerce a max-age with a decimal value into an integer).  Likewise, implementations SHOULD ignore parameters on directives, unless otherwise specified. However, implementers MAY reuse a Cache-Control parser for simplicity.  If they do so, they SHOULD observe the following points, to aid in a smooth transition to a full Structured Field parser and prevent interoperability issues: </del> <ins> Targeted fields are defined as Dictionary Structured Fields (Section 3.2 of STRUCTURED-FIELDS).  Each member of the dictionary is a cache directive from the Hypertext Transfer Protocol (HTTP) Cache Directive Registry. Because cache directives are not defined in terms of structured data types, it is necessary to map their values into the appropriate types.  Typically, they are mapped into a Boolean (Section 3.3.6 of STRUCTURED-FIELDS) when the member has no separate value, a Token (Section 3.3.4 of STRUCTURED-FIELDS) for alphanumeric values, a String (Section 3.3.3 of STRUCTURED-FIELDS) for quote-delimited values, or an Integer (Section 3.3.1 of STRUCTURED-FIELDS) for purely numeric values. For example, the max-age directive (Section 5.2.2.1 of HTTP-CACHING) has an integer value; no-store (Section 5.2.2.5 of HTTP-CACHING) always has a boolean true value, and no-cache (Section 5.2.2.4 of HTTP-CACHING) has a value that can either be boolean true or a string containing a comma-delimited list of field names. Implementations SHOULD NOT generate or consume values that violate these inferred constraints on the directive's value (e.g. coerce a max-age with a decimal value into an integer).  Likewise, implementations SHOULD ignore parameters on directives, unless otherwise specified. Sending implementations MUST generate valid Structured Fields. Receiving implementations SHOULD use a Structured Fields parser, but MAY reuse an existing parser for the Cache-Control field value (Section 5.2 of HTTP-CACHING).  In doing so, they SHOULD implement the following constraints, to aid in a smooth transition to a full Structured Field parser and prevent interoperability issues: Directive names are all lowercase (e.g., "MAX-AGE=60" is considered an error). </ins> If a directive is repeated in the field value (e.g., "max-age=30, <del> max-age=60"), the last value 'wins' (60, in this case) </del> <ins> max-age=60"), the last value 'wins' (60, in this case). </ins> Members of the directives can have parameters (e.g., "max- age=30;a=b;c=d"), which should be ignored unless specified. If a targeted field in a given response is empty, or a parsing error <del> is encountered (when being parsed as a Structured Field), that field SHOULD be ignored by the cache (i.e., it should behave as if the field were not present, likely falling back to other cache control mechanisms present). </del> <ins> is encountered, that field SHOULD be ignored by the cache (i.e., it should behave as if the field were not present, likely falling back to other cache control mechanisms present). </ins> 2.3.