observe/describe: schema-constrain frame categorization; thread json_schema through think/batch
- Add json_schema: Optional[dict] threading in think/batch.py from BatchRequest through Batch.create() into agenerate(...).
- Add observe/describe.schema.json with a static 9-category Draft 2020-12 enum, wire it into the Phase 1 categorization batch call, and leave response parsing unchanged; tests enforce manual enum sync with the category registry.
- Add schema validity, accept/reject, wiring, and filesystem sync-guard coverage for observe/describe, plus a batch passthrough test for json_schema.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>