SIGN IN SIGN UP

feat(buckets): add b5 string + b6 byte-array substitution; production API cleanup

- New ISendProxyManager: IBaseEntity overloads, Hook(...)/SetUniform(...) collapsed
  from Hungarian-suffixed names; deleted dead SourceMod-compat surface (HookArrayInt,
  HookGameRules*, HookPropChange, SendProxyResult/SendPropType, _hooks/_changeHooks).
- FieldSubstitution: b5 string (point valuePtr at a char* slot) + b6 byte-array
  ({data,count} struct); all managed alloc moved before the native save/rewind/emit
  so it can't corrupt mid-rewrite; stripped useless native-read try/catch (IsUserPtr
  is the guard) down to the 3 real ones (unmanaged boundary, callback invoke, install).
- Bounded the string/byte-array stackalloc (MaxSubstituteBytes) — caller-controlled
  size on the send worker stack would otherwise overflow it.
- NativeUtil/SerializerProbe: dropped try/catch around pointer derefs, gate on IsUserPtr.
- gamedata EncoderBucket5/6 (+3 r +80/+96 d); README + RE docs updated.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
P
Prefix committed
646a2ea2b3c4475b65f6fdbeaeeac7d6fd2c102f
Parent: 7bb469d