make cast_to generic
type[T] (T bound to BaseModel) with overloads on _parse and the four
transport methods: cast_to given returns T, omitted returns Any for the
raw-json escape hatch. resource annotations are now checked against
their cast_to instead of laundered through Any. an empty body where
cast_to was given now raises SembleError instead of silently returning
None — that's a broken api contract, not a type to accommodate
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>