Surface Contract: platform API behavior and x402 pre-payment checks