Issue #307 OBJ-2. Adds GIST trgm index on objective_lots.project_name so the
LATERAL similarity() probe runs via bitmap index scan instead of seq-scan-per-row
(database-expert worker identified this perf bottleneck via EXPLAIN).
Composite score = name_sim*0.6 + dev_match*0.25 + district_match*0.15.
Threshold composite >= 0.75 for auto-accept.
ON CONFLICT (objective_complex_name, objective_group) DO NOTHING — idempotent.
REFRESH mv_layout_velocity CONCURRENTLY after backfill (outside tx) so Site
Finder sees new mappings immediately.
Expected mapping count: 142 -> 200+ (realistic ceiling given Objective
project_names vs DOM.РФ comm_names naming gap).