# Marking contracts on the map — decided, not yet built (2026-10-14)
A decision taken and parked, so it is not re-argued when the time comes.
## What
A way to make a chosen set of contracts stand out on every frame of `bat-cli map` and on every
copy of them — the reader's own list, fed once. The audit session that asked for it would feed
it the contracts in scope, but **bat does not know what "scope" is and must not learn**: it maps
the code and stays agnostic. To bat this is "the contracts the reader wants to see".
It is NOT `bat-cli highlight`. That command already exists and marks LINES inside a deployed
frame (`--deployment`, `--function`, `--lines`); one verb for two different objects is how a CLI
becomes a guessing game.
## How it looks — the auditor's call
**The BACKGROUND is for the marked contracts.** What the reader has chosen to care about is what
has to be visible from outside the frame, at the zoom where a whole map fits, before anything
else on it. A fill carries at that distance; a border does not — measured twice already, with
the cards and with the repeated-contract borders.
That takes the fill away from the interfaces, which currently use one tint per interface. They
move to a **dotted border with the name in that interface's colour**: an interface leaf is read
once the reader has found the contract that calls it, so it can afford a quieter channel, and
the coloured TEXT still ties every copy of one interface together.
Unchanged: a contract drawn twice in one frame keeps its own solid coloured border.
So, per box:
| a marked contract | its mark colour | as below | black |
| an interface leaf | white | dotted | the interface's colour |
| drawn twice in this frame | — | solid, the contract's colour | black |
| anything else | white | solid black | black |
## Naming
`mark`, not `highlight`: `bat-cli map --mark A,B,C` for one run, and `bat-cli mark add|remove`
with `--list` for the list that persists in `BatMetadata.json`, beside `ignored_contracts` —
the other list an auditor keeps.