# Reference authority

Use references as controlled inputs, not as an unordered inspiration pile.

## Authority layers

Resolve conflicts in this order:

1. rights, consent, and platform policy;
2. canonical World identity and locked revision;
3. accepted continuity state;
4. explicit Shot action and dialogue;
5. scene/prop ownership and physical causality;
6. camera, motion, spatial, and timing donors;
7. style and decoration.

A lower reference cannot overwrite a higher layer.

## Role map

| MCP role | Controls | Must not control |
|---|---|---|
| `character` | face, body identity, wardrobe/design, canonical presence | donor camera, environment, unrelated pose/action |
| `scene` | canonical environment, geography, persistent set elements | character identity or story event |
| `prop` | canonical object geometry/material/state | owner, action, unrelated background |
| `style` | medium, rendering, palette, texture, material/light language | depicted people, objects, composition, location, plot |
| `motion` | ordered action, rhythm, camera/blocking when explicitly requested | identity, wardrobe, scene, logo, style |
| `spatial_guide` | scale, positions, eyelines, camera/framing, occlusion | proxy appearance, World identity, final render style |
| `continuity` | incoming/outgoing state and edit composition at the declared boundary | canonical identity or unrelated future events |
| `audio` | voice, delivery, timing, rhythm, ambience as declared | visual identity or scene content |
| `asset`/`reference` | only the explicitly stated fallback duty | all unspecified dimensions |

## Unique owner rule

For each controlled dimension—identity, wardrobe, voice, environment, prop design, action, camera, timing, continuity, style—choose one winning reference or mark it unowned. If two references compete for the same dimension, resolve the conflict before submission. Drop a donor that controls nothing.

MCP currently expresses this through `referenceRole`, `referenceName`, `mentionText`, media metadata, and continuity boundary. Keep the fuller control/ignore reasoning in the agent's production plan; do not invent unsupported MCP fields.

## World assembly

Call `assemble_shot_references` before video generation. Prefer canonical, revision-aware World media:

- character sheets and character assets;
- canonical scene/prop refs;
- selected World style profile;
- speaking-character voice sample;
- optional motion board.

Use the returned reference list and warnings. Do not replace a missing canonical reference with a text name and claim equivalent identity protection.

## Continuity media

An `anchorId` is only a logical label. It never loads media.

For `shared_anchor`:

- attach explicit continuity media;
- set `referenceRole: continuity`;
- set `continuityBoundary` to `incoming`, `outgoing`, or `both`;
- set `referenceName` equal to the relevant `anchorId`;
- reuse the same blob/URL for repeated occurrences of one anchor id.

For `sequential`, do the above after the predecessor has completed and been accepted. Use its real observed end state and explicit imported/existing continuity media. Do not pretend that MCP extracted a last frame.

## Source carries state

When accepted source media is attached, let it carry what it visibly contains and let text carry the delta:

- video carries static and dynamic state; text carries next action, endpoint, exclusions, and drift-risk locks;
- still image carries static state; text must also carry open motion, camera phase, and audio phase;
- no visual source means concrete opening state must be written in the continuity contract.

Avoid re-describing canonical appearance already carried by World references; contradictions between prose and media create drift.
