talents/participation: migrate to external participation.schema.json + shared entry fragment
Next L3 structured-outputs migration: constrain the participation talent
with an external schema.
Follows sense (8c952dc4), story (50693752), daily_schedule (0e098e7b),
and detect_created (b58bd862).
Introduces talent/participation.schema.json plus a shared
participation_entry.schema.json fragment. The top-level schema inlines
that fragment shape (Option B) instead of using cross-file $ref because
think/talent.py::_load_talent_schema has no cross-file registry
plumbing; drift is guarded by
tests/test_participation_schema.py::test_participation_schema_items_match_fragment.
No post-hook changes: talent/participation.py is byte-identical, and the
prompt body in talent/participation.md is untouched.
Provider-side validation remains deferred per precedent; advisory local
validation continues through the existing dispatcher path.
Forward note: talent/schedule.md:55-63 is the logical next adoption site
for the shared fragment, but its current participation example does not
include entity_id, which the fragment requires, so that follow-up lode
will need to update the example or introduce a variant.