Accept hub Terms of Service
Accept the Terms of Service for this hub.
Version-aware acceptance: stamps tos_accepted_at and records the current TOS version. A repeat call with the already-current version is a no-op (returns 200 with the existing timestamp). After an admin bumps the TOS version with require_acceptance=True, the next call re-stamps tos_accepted_at and re-emits TosAccepted.
Returns 401 when no valid contact JWT is present (enforced by get_current_contact dependency).
Returns 404 when the contact has no hub_memberships row for this hub, when the hub does not exist, or when the hub’s TOS gate is not enabled (enumeration-safe: the caller cannot distinguish these cases).
Emits TosAccepted on each acceptance (initial or re-acceptance after a version bump).
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.