Preserve reference identity across data, review, and decoder boundaries

Preserve reference identity across data, review, and decoder boundaries: an R:<index> target should name the exact input-visible local offer ID, not a position recomputed from offer count. This applies when an upstream history builder can use one-based or sparse local IDs; test a single offer with ID 1 and a sparse ID separately. A grammar that only permits 0..count-1 may reject valid reviewed gold or tempt a lossy coercion. This does not establish that every reference is causally visible: also verify its source sequence precedes the decision cutoff.