function createEscrow(
bytes32 userSalt, // User-provided entropy for address
address seller, // Seller address
address agent, // Agent (or address(0) for locked)
address token, // ERC20 token address
uint256 amount, // Escrow amount (in token decimals)
uint256 buyerProtectionTime, // Time buyer has to review (seconds)
bytes32 termsHash, // Hash of PDF terms
uint256 version, // Contract version
address expectedEscrow // Expected address (safety check)
) external returns (address escrow);