Some message fields of type Boolean are listed as optional. This has a pretty ambiguous meaning for a boolean, which if present, is always True or False.
For one non-exhaustive example, some messages include a FINAL-MESSAGE boolean field that is optional. What does it mean when not present? It could be inferred that it is equivalent to False, but it could also be inferred that this is ignored when there is only one message, which would be the same as True.
We need to go through all these usages individually and decide if these should be required, rather than optional.
There is a second possible approach. It may be OK to change something form optional to required, even in a 1.x baseline, if it is the case that the optionality was not workable and in practice it must already always be specified. However, in cases where we cannot clearly state the above, it would at a minimum be beneficial to C2MS users to give guidance, which would look like: "Although [field-x] remains optional for backward-compatibility, in practice it should always be present, with true meaning xx and false meaning yy."
The following Boolean fields are optional:
[Various Messages]
[Various Messages].FINAL-RESPONSE. This field is always optional by necessity as it was introduced in 1.2, so making it required would have been backward-breaking. A description of this situation is already provided in section 6.4.3.3 C2MS RESP Message Type, and the default value (if not present) is already designated for each message that includes it. Because of this, no changes is needed for this field.
Archive Message Retrieval Request
Archive Message Retrieval Request.DELIVER-VIA-REFERENCE - already states the default (if not specified). No change needed.
Archive Message Retrieval Request.DELIVER-VIA-INCLUDE - already states the default (if not specified). No change needed.
Telemetry CCSDS Frame Message
Telemetry CCSDS Frame Message.RS-PRESENT - Does not specify a default. Seems pretty reasonable to state a default of FALSE. However, this message has already been deprecated, so perhaps no change is needed.
Telemetry CCSDS CADU Frame Message
Telemetry CCSDS CADU Frame Message.INVERTED-DATA - Does not specify a default. Seems pretty reasonable to state a default of FALSE.
Telemetry CCSDS CADU Frame Message.FEC-UNCORRECTABLE - Does not specify a default. Because the field description explicitly says when it is set to FALSE, but not when it is set to TRUE, seems like the a possible default would be TRUE, but discussion needed.
Telemetry CCSDS Transfer Frame Message
Telemetry CCSDS Transfer Frame Message.FECF-ERROR - Does not specify a default. Seems pretty reasonable to state a default of FALSE.
Telemetry CCSDS Transfer Frame Message.HECF-ERROR-UNCORRECTABLE - Does not specify a default. Seems pretty reasonable to state a default of FALSE.
Mnemonic Value Response Message
Mnemonic Value Response Message.MNEMONIC.n.SAMPLE.m.LIMIT-ENABLE-DISABLE - Does not specify a default. Hard to say if defaul should be FALSE (Disabled) or TRUE (Enabled). Discussion needed.
Mnemonic Value Response Message.MNEMONIC.n.SAMPLE.m.RED-HIGH - Does not specify a default. Seems pretty reasonable to state a default of FALSE. However, this field has already been deprecated, so perhaps no change is needed.
Mnemonic Value Response Message.MNEMONIC.n.SAMPLE.m.RED-LOW- Does not specify a default. Seems pretty reasonable to state a default of FALSE. However, this field has already been deprecated, so perhaps no change is needed.
Mnemonic Value Response Message.MNEMONIC.n.SAMPLE.m.YELLOW-HIGH - Does not specify a default. Seems pretty reasonable to state a default of FALSE. However, this field has already been deprecated, so perhaps no change is needed.
Mnemonic Value Response Message.MNEMONIC.n.SAMPLE.m.YELLOW-LOW - Does not specify a default. Seems pretty reasonable to state a default of FALSE. However, this field has already been deprecated, so perhaps no change is needed.
Mnemonic Value Response Message.MNEMONIC.n.SAMPLE.m.STATIC - Does not specify a default. Seems pretty reasonable to state a default of FALSE (Active), but discussion needed.
Mnemonic Value Response Message.MNEMONIC.n.SAMPLE.m.QUALITY - Does not specify a default. Seems pretty reasonable to state a default of FALSE (Good quality), but discussion needed.
Mnemonic Value Data Message
Mnemonic Value Data Message.MNEMONIC.n.SAMPLE.m.LIMIT-ENABLE-DISABLE - Does not specify a default. Hard to say if defaul should be FALSE (Disabled) or TRUE (Enabled). Discussion needed.
Mnemonic Value Data Message.MNEMONIC.n.SAMPLE.m.RED-HIGH - Does not specify a default. Seems pretty reasonable to state a default of FALSE. However, this field has already been deprecated, so perhaps no change is needed.
Mnemonic Value Data Message.MNEMONIC.n.SAMPLE.m.RED-LOW- Does not specify a default. Seems pretty reasonable to state a default of FALSE. However, this field has already been deprecated, so perhaps no change is needed.
Mnemonic Value Data Message.MNEMONIC.n.SAMPLE.m.YELLOW-HIGH - Does not specify a default. Seems pretty reasonable to state a default of FALSE. However, this field has already been deprecated, so perhaps no change is needed.
Mnemonic Value Data Message.MNEMONIC.n.SAMPLE.m.YELLOW-LOW - Does not specify a default. Seems pretty reasonable to state a default of FALSE. However, this field has already been deprecated, so perhaps no change is needed.
Mnemonic Value Data Message.MNEMONIC.n.SAMPLE.m.STATIC - Does not specify a default. Seems pretty reasonable to state a default of FALSE (Active), but discussion needed.
Mnemonic Value Data Message.MNEMONIC.n.SAMPLE.m.QUALITY - Does not specify a default. Seems pretty reasonable to state a default of FALSE (Good quality), but discussion needed.
Archive Mnemonic Value Data Message
Archive Mnemonic Value Data Message.MNEMONIC.n.SAMPLE.m.LIMIT-ENABLE-DISABLE - Does not specify a default. Hard to say if defaul should be FALSE (Disabled) or TRUE (Enabled). Discussion needed.
Archive Mnemonic Value Data Message.MNEMONIC.n.SAMPLE.m.RED-HIGH - Does not specify a default. Seems pretty reasonable to state a default of FALSE. However, this field has already been deprecated, so perhaps no change is needed.
Archive Mnemonic Value Data Message.MNEMONIC.n.SAMPLE.m.RED-LOW- Does not specify a default. Seems pretty reasonable to state a default of FALSE. However, this field has already been deprecated, so perhaps no change is needed.
Archive Mnemonic Value Data Message.MNEMONIC.n.SAMPLE.m.YELLOW-HIGH - Does not specify a default. Seems pretty reasonable to state a default of FALSE. However, this field has already been deprecated, so perhaps no change is needed.
Archive Mnemonic Value Data Message.MNEMONIC.n.SAMPLE.m.YELLOW-LOW - Does not specify a default. Seems pretty reasonable to state a default of FALSE. However, this field has already been deprecated, so perhaps no change is needed.
Archive Mnemonic Value Data Message.MNEMONIC.n.SAMPLE.m.STATIC - Does not specify a default. Seems pretty reasonable to state a default of FALSE (Active), but discussion needed.
Archive Mnemonic Value Data Message.MNEMONIC.n.SAMPLE.m.QUALITY - Does not specify a default. Seems pretty reasonable to state a default of FALSE (Good quality), but discussion needed.
Command Request Message
Command Request Message.BYPASS - Does not specify a default. Seems pretty reasonable to state a default of FALSE.
Command Request Message.CMD-ECHO - Does not specify a default. Seems pretty reasonable to state a default of FALSE.
Command Echo Message
Command Echo Message.ECHOED-CMD-BYPASS - Does not specify a default. Seems pretty reasonable to state a default of FALSE, but discussion needed.
Product Request Message
Product Request Message.DELIVER-VIA-REFERENCE - Already states the default (if not specified). No change needed.
Product Request Message.DELIVER-VIA-INCLUDE - Already states the default (if not specified). No change needed.
Product Message
Product Message.DELIVER-VIA-REFERENCE - Does not specify a default. Already states the default (if not specified). Seems pretty reasonable to state a default of FALSE, but discussion needed. However, according a careful reading of the field description, at least one of VIA-REF and VIA-INCLUDE must be TRUE. Both is allowed here. The text of the field description should be updated to state this more directly.
Product Message.DELIVER-VIA-INCLUDE - Does not specify a default. Already states the default (if not specified). Seems pretty reasonable to state a default of FALSE, but discussion needed. However, according a careful reading of the field description, at least one of VIA-REF and VIA-INCLUDE must be TRUE. Both is allowed here. The text of the field description should be updated to state this more directly.