Standalone Intake Backend Plugin — SHINES Alignment
## Summary
Make standalone `craig-intake` able to conform reports to a legacy backend (SHINES first) — fully, while keeping the jurisdiction-neutral core untouched and cleanly strippable — and stand up the 3rd-party signed-submission API with a tiny stateless-preserving key-registry sidecar. Architecture fixed in **ADR-042**; full design + field-by-field mapping in the plan.
**Plan:** [Standalone Intake Backend Plugin (SHINES Alignment)](https://gitlab.com/gadhs/application/ccwis/craig/-/blob/main/docs/modules/ROOT/pages/plans/standalone-intake-backend-plugin.adoc)
**ADR:** [ADR-042](https://gitlab.com/gadhs/application/ccwis/craig/-/blob/main/docs/modules/ROOT/pages/adrs/adr-042-standalone-intake-backend-plugin.adoc)
## Children (sequenced MRs)
- [x] #681 refactor(intake): IntakeSink trait seam + ForwardRequest + TrackingReference (weight: 2)
- [x] #682 feat(intake): BackendProfile + config + typed ExtraFields/entry/Narrative views + SDK lockstep (weight: 5)
- [x] #683 feat(reference): SHINES RefVals crosswalk (placeholders) (weight: 3)
- [x] #684 feat(intake): SHINES server views + CpsRequest mapper + fidelity + ShinesSink (weight: 8)
- [x] #685 feat(intake): declared field-relevance rule engine (server) + GET /public/v1/intake-schema (weight: 5)
- [x] #686 feat(intake): schema-driven form driver (CSP-safe) (weight: 3)
- [x] #687 feat(intake): SHINES FieldRule rows + ExtraFields/per-person capture (weight: 3)
- [x] #695 feat(intake): SHINES ExtraFields/per-person form capture + devstack SHINES instance + e2e (weight: 5)
- [x] #696 feat(intake): SDK ExtraFields lockstep (Rust/Python/TS typed submitter) (weight: 3)
- [x] #688 feat(intake-keyring): craig-intake-keyring sidecar service (weight: 5)
- [x] #689 feat(intake): standalone-SHINES signature-only JWS auth via sidecar + keygen/registration UI (weight: 5)
- [x] #690 test(intake): e2e + proposed-SHINES-API-spec + sidecar doc + docs/CHANGELOG (weight: 3)
## External / data dependencies (blocking go-live)
- [ ] #691 chore(intake): obtain authoritative SHINES intake API contract
- [ ] #692 chore(intake): obtain authoritative SHINES RefVals code tables
- [ ] #693 chore(intake): confirm SHINES required-field set
epic