### `wai.media.influence`: who conditioned an output, and their share of what it earns

- **The extension** ([influence](extensions/influence.md)) registers the record
  `wai.media.influence`. An owner, any key (a person, a collective, a label), publishes a work with
  signed **terms** (`wai-terms`): its `wai.ai.usage` statement, the acts of generation it allows, a
  per-use price or a revenue share, the tier a use of it must reach, and when the terms are in
  force; a **catalogue** (`wai-catalogue`) is a signed set of works one set of terms governs. Terms
  and catalogues are their owner's only by its signature (`not_signed_by_owner`). A work is a style
  or reference image, a voice model, an adapter or another prior, a taste prior or a catalogue, named
  by digest; an owner's prior is published unchanged, pinned as SPEC §3.1 pins any parameter set.
- **Conditioning.** A generation, candidates or an inpainting of a contribution session names every
  work that conditioned it in a **conditioning** record (`wai-conditioning`) beside the step, bound
  to it by its link hash: contribution reads every record with exactly its members, so a member
  added to the step would make every contribution verifier refuse the session. Each reference
  names its work, the owner's terms in force, its weight and its use, checked against the terms
  (`terms_mismatch`, `not_in_catalogue`, `terms_not_in_force`, and ai-usage's `usage_unanswered`
  and `usage_disallowed`). The pinned conditioned generator, `wai-influence:spectral-blend`,
  blends `wai.generate.spectral`'s picture with every reference image (tiled) and adapter (a
  second model file) by weight in integers, so a verifier regenerates the step from the works it
  names: a work left out, added or reweighted fails (`conditioning_mismatch`), and a reference
  named for a step of the exact generator, which reads none, is refused too.
- **Attribution.** Every sample of the output has the steps that made it (contribution §7.2's rules
  with the step in place of its performer), and the declared rule `wai-influence:share/1` divides
  the output, 10^6 units a sample, among the people who made samples, the owners of the works that
  conditioned the model by their weights (equal shares, the model counted as one, where none is
  declared), the model's owner, works no one owns, and `unknown` and `undisclosed`, which are
  never credited (`unknown_attributed`). The tool's **attribution** (`wai-attribution`) states the
  shares, which sum to the whole (`shares_not_whole`) and which a verifier recomputes
  (`shares_mismatch`) whenever every step behind the output is disclosed; a training-time estimate
  is stated beside them with its estimator's class and never added (`estimate_mixed`). Each use has
  a tier, `recomputed` where the generation was regenerated with its works, and an owner's terms set
  the lowest it accepts (`attribution_not_met`).
- **Payment.** A settlement statement's line kind 2, reserved until now, is the **attribution
  line** ([settlement](extensions/settlement.md) §7.8): per owner, object class and basis, the
  output's acknowledged deliveries and bytes and `per_use` × deliveries + ⌊revenue × share ×
  units / (10^6 × whole)⌋, rounded down once per bucket, the remainder staying with the party; the
  statement's `amount` and `classes` remain the delivery lines'. A verifier recomputes every line
  from the bases it verified: a disallowed use paid, a tariff in another currency
  (`currency_mismatch`), an owner left out, and an output's deliveries settled with no line for its
  owners (`attribution_unsettled`) are refused. A statement verified by settlement alone refuses an
  attribution line whose basis it is not given (`record_missing`), and the settlement corpus's
  reserved-line vector now says so.
- **Transparency report** (`wai-influence-report`): per owner and statement, the outputs its works
  had units in, its buckets, the deliveries, the revenue and the amounts, signed by the statement's
  party. The owner recomputes every amount from its own terms; an auditor holding the statement
  checks that the report lists exactly the owner's lines (`report_incomplete`, `report_mismatch`).
  It names no other owner.
- **Reference and corpus.** `wai-rs` module `influence` (feature `influence`), the corpus
  `live-conformance/influence/` written by `wai_influence_vectors gen`, and its second
  implementation `live-conformance/influence_verify.py`, which verifies each session with
  `contribution_verify.py`, regenerates every conditioned step itself and reads statements with
  `settlement_verify.py`, now amended to read attribution lines.

