torchcell.datamodels.identity.media_identity

media_identity(media: Media) → dict[str, Any][source]

Project a medium onto its composition: state, synthetic flag, base, contents.

name, provenance, and each component’s provenance / note / defers_to are dropped: they record who stated the recipe, not what the recipe is. Components and dropouts are sorted, so listing order is not identity. A medium’s provenance_gaps are projected only when it carries one (MEDIA_OPTIONAL_IDENTITY_FIELDS), so a stated medium’s id is unchanged and a gapped one never joins it. dropout_roles is projected on the same terms (lane X): a role the source states is omitted is composition, so a carbon-free SC does not join SC, and a medium that states no role-level omission hashes exactly as it did before the field existed.