# Fact policy v0.1 A claim is a statement about one entity field. It is not a proof. The snapshot keeps every claim. The manifest `factPolicy` only decides what a display may show. | Situation | Claim shape | `resolve_claims` state | |---|---|---| | No claim for that key | absent | `missing` | | The field was checked and has no value | `status: unknown` | `unknown` | | One asserted value | `status: asserted` | `present` | | The holder asked not to display it | `status: withheld` | `withheld` | | Two asserted values | both `status: asserted` | `contradicted` | Policies when values disagree: - `show-all` returns every asserted value and state `contradicted`. - `withhold` returns no values and state `contradicted`. - `preferred` returns the single claim with `preferred: true`. If none or more than one is marked, it returns no values and state `contradicted`. Absence is not the same as unknown, and unknown is not the same as false. A relation with no `sourceRefs` is invalid. It is not stored as an unsourced fact. Conflicting claims stay in the snapshot either way. The policy does not delete them.