JSONObject.getInt threw when timeout/retryAttempts/retryDelay were omitted, but TS ContentFetchConfig marks them optional. Use optIntOrNull so null passes through and FetchWorker keeps its existing defaults. Document omitted-field behavior in README under scheduleDualNotification.