{"serverId":"mcp-registry/io.github.th3slack3r/slacking-biz","tools":[{"name":"batch_query","fixed":{"name":"batch_query","description":"Batch query multiple tickers at once for efficiency","inputSchema":{"type":"object","required":["tickers"],"properties":{"tickers":{"type":"string","description":"Comma-separated ticker symbols (e.g. AAPL,MSFT,GOOGL)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":72,"tokensAfter":72},{"name":"compare_companies","fixed":{"name":"compare_companies","description":"Compare financial metrics across multiple companies side by side","inputSchema":{"type":"object","required":["tickers"],"properties":{"tickers":{"type":"string","description":"Comma-separated ticker symbols (e.g. AAPL,MSFT,GOOGL)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":77,"tokensAfter":77},{"name":"edgar_fulltext_search","fixed":{"name":"edgar_fulltext_search","description":"Full-text search across ALL SEC EDGAR filings (EFTS) — find filings mentioning a keyword/phrase across companies. Extends the existing per-company SEC integration with cross-company filing search. Source: SEC EDGAR full-text search (public-domain, no key).","inputSchema":{"type":"object","required":["q"],"properties":{"q":{"type":"string","description":"Full-text search query (e.g. 'artificial intelligence', 'quantum computing')"},"limit":{"type":"number","description":"Max results (1-50, default 10)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":155,"tokensAfter":155},{"name":"fx_convert","fixed":{"name":"fx_convert","description":"Convert an amount from one currency to another at current exchange rates. Sources: ECB + 84 central banks. Free for commercial use.","inputSchema":{"type":"object","properties":{"amount":{"type":"number","description":"Amount to convert (e.g. 100, 2500.50). Default: 1.0"},"to_currency":{"type":"string","description":"Target currency code (e.g. EUR, JPY, BRL). Default: EUR"},"from_currency":{"type":"string","description":"Source currency code (e.g. USD, EUR, GBP). Default: USD"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":145,"tokensAfter":145},{"name":"fx_get_pair_rate","fixed":{"name":"fx_get_pair_rate","description":"Get the exchange rate between any two currencies. Sources: ECB + 84 central banks. Free for commercial use.","inputSchema":{"type":"object","required":["from_currency","to_currency"],"properties":{"to_currency":{"type":"string","description":"Target currency code (e.g. EUR, JPY, BRL)"},"from_currency":{"type":"string","description":"Source currency code (e.g. USD, EUR, GBP)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":118,"tokensAfter":118},{"name":"fx_get_rates","fixed":{"name":"fx_get_rates","description":"Get live exchange rates for any currency. Sources: European Central Bank + 84 central banks, 201 currencies. No API key needed — free for commercial use.","inputSchema":{"type":"object","properties":{"base":{"type":"string","description":"Base currency code (e.g. USD, EUR, GBP). Default: EUR"},"quotes":{"type":"string","description":"Comma-separated target currencies to filter (e.g. USD,EUR,GBP). Empty = all."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":127,"tokensAfter":127},{"name":"fx_list_currencies","fixed":{"name":"fx_list_currencies","description":"List all 31 available currency codes and names for foreign exchange queries. Covers USD, EUR, GBP, JPY, CNY, and more.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":59,"tokensAfter":59},{"name":"get_air_quality","fixed":{"name":"get_air_quality","description":"Get air quality data (OpenAQ) — PM2.5, PM10, O3, NO2 for a city","inputSchema":{"type":"object","required":[],"properties":{"location":{"type":"string","description":"City name (e.g. 'Beijing', 'Los Angeles')"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":71,"tokensAfter":71},{"name":"get_all_financial_data","fixed":{"name":"get_all_financial_data","description":"Get all financial data (income statement, balance sheet, cash flow) in one call","inputSchema":{"type":"object","required":["ticker"],"properties":{"ticker":{"type":"string","description":"Stock ticker symbol"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":73,"tokensAfter":73},{"name":"get_balance_sheet","fixed":{"name":"get_balance_sheet","description":"Get detailed balance sheet for a company (assets, liabilities, equity)","inputSchema":{"type":"object","required":["ticker"],"properties":{"ticker":{"type":"string","description":"Stock ticker symbol"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":69,"tokensAfter":69},{"name":"get_bea_gdp","fixed":{"name":"get_bea_gdp","description":"Get US GDP from BEA (NIPA accounts)","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":38,"tokensAfter":38},{"name":"get_cash_flow","fixed":{"name":"get_cash_flow","description":"Get detailed cash flow statement for a company (operating, investing, financing)","inputSchema":{"type":"object","required":["ticker"],"properties":{"ticker":{"type":"string","description":"Stock ticker symbol"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":71,"tokensAfter":71},{"name":"get_company_health","fixed":{"name":"get_company_health","description":"Get a company's overall financial health score (A-F grade) including summary metrics","inputSchema":{"type":"object","required":["ticker"],"properties":{"ticker":{"type":"string","description":"Stock ticker symbol (e.g. AAPL, MSFT, TSLA)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":80,"tokensAfter":80},{"name":"get_company_profile","fixed":{"name":"get_company_profile","description":"Get company profile — sector, industry, employees, description, market cap","inputSchema":{"type":"object","required":["ticker"],"properties":{"ticker":{"type":"string","description":"Stock ticker symbol"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":71,"tokensAfter":71},{"name":"get_county_demographics","fixed":{"name":"get_county_demographics","description":"Get county-level demographics data by FIPS code from the US Census Bureau","inputSchema":{"type":"object","required":["fips"],"properties":{"fips":{"type":"string","description":"5-digit county FIPS code (e.g. '06037' for Los Angeles County, CA)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":84,"tokensAfter":84},{"name":"get_econ_summary","fixed":{"name":"get_econ_summary","description":"Get all key economic indicators (GDP, CPI, rates, employment, housing) in one call from FRED","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":55,"tokensAfter":55},{"name":"get_employment","fixed":{"name":"get_employment","description":"Get latest unemployment rate and jobless claims from FRED","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":45,"tokensAfter":45},{"name":"get_filing_types","fixed":{"name":"get_filing_types","description":"Get filing types available for a company (10-K, 10-Q, 8-K, etc.)","inputSchema":{"type":"object","required":["ticker"],"properties":{"ticker":{"type":"string","description":"Stock ticker symbol"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":67,"tokensAfter":67},{"name":"get_gdp","fixed":{"name":"get_gdp","description":"Get latest US GDP data from FRED","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":36,"tokensAfter":36},{"name":"get_housing","fixed":{"name":"get_housing","description":"Get latest housing starts and existing home sales data from FRED","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":46,"tokensAfter":46},{"name":"get_income_statement","fixed":{"name":"get_income_statement","description":"Get detailed income statement for a company (revenue, expenses, earnings per share)","inputSchema":{"type":"object","required":["ticker"],"properties":{"ticker":{"type":"string","description":"Stock ticker symbol"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":74,"tokensAfter":74},{"name":"get_inflation","fixed":{"name":"get_inflation","description":"Get latest CPI/inflation data from FRED","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":40,"tokensAfter":40},{"name":"get_insider_trades","fixed":{"name":"get_insider_trades","description":"Get recent insider trading activity for a company (Form 4 filings)","inputSchema":{"type":"object","required":["ticker"],"properties":{"ticker":{"type":"string","description":"Stock ticker symbol"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":68,"tokensAfter":68},{"name":"get_labor_series","fixed":{"name":"get_labor_series","description":"Get BLS labor market series (keyless) — unemployment rate default (LNS14000000)","inputSchema":{"type":"object","required":[],"properties":{"series_id":{"type":"string","description":"BLS series ID (default: LNS14000000 = civilian unemployment rate)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":83,"tokensAfter":83},{"name":"get_rates","fixed":{"name":"get_rates","description":"Get latest Fed funds rate, mortgage rates, and treasury yields from FRED","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":48,"tokensAfter":48},{"name":"get_revenue_segments","fixed":{"name":"get_revenue_segments","description":"Get revenue breakdown by product/service segments for a company","inputSchema":{"type":"object","required":["ticker"],"properties":{"ticker":{"type":"string","description":"Stock ticker symbol"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":68,"tokensAfter":68},{"name":"get_sentiment","fixed":{"name":"get_sentiment","description":"Get sentiment analysis from SEC filings for a company — positive/negative/neutral signals from 10-K/10-Q reports","inputSchema":{"type":"object","required":["ticker"],"properties":{"ticker":{"type":"string","description":"Stock ticker symbol"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":80,"tokensAfter":80},{"name":"get_trends","fixed":{"name":"get_trends","description":"Get financial trends over time for a company — revenue, profit, margins across reporting periods","inputSchema":{"type":"object","required":["ticker"],"properties":{"ticker":{"type":"string","description":"Stock ticker symbol"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":74,"tokensAfter":74},{"name":"get_zip_demographics","fixed":{"name":"get_zip_demographics","description":"Get demographics for a ZIP code (population, income, age, housing, education) from the US Census Bureau","inputSchema":{"type":"object","required":["zip_code"],"properties":{"zip_code":{"type":"string","description":"5-digit US ZIP code (e.g. '90210', '10001')"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":87,"tokensAfter":87},{"name":"health_adverse_events","fixed":{"name":"health_adverse_events","description":"FAERS adverse event reports for a drug by brand/generic name — report id, seriousness, reactions, outcomes. Source: openFDA (U.S. FDA) FAERS, public data.","inputSchema":{"type":"object","required":["drug"],"properties":{"drug":{"type":"string","description":"Drug brand or generic name (e.g. 'Aspirin', 'atorvastatin')"},"limit":{"type":"number","description":"Max results (1-20, default 5)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":124,"tokensAfter":124},{"name":"health_adverse_events_by_ndc","fixed":{"name":"health_adverse_events_by_ndc","description":"FAERS adverse event reports for a drug by NDC code — report id, seriousness, reactions, outcomes. Source: openFDA (U.S. FDA) FAERS, public data.","inputSchema":{"type":"object","required":["ndc"],"properties":{"ndc":{"type":"string","description":"NDC code (e.g. '0113-0611')"},"limit":{"type":"number","description":"Max results (1-20, default 5)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":113,"tokensAfter":113},{"name":"health_device_510k","fixed":{"name":"health_device_510k","description":"Look up an FDA 510(k) premarket device clearance by K number — device name, applicant, decision, decision date, product code. Source: openFDA (U.S. FDA), public data.","inputSchema":{"type":"object","required":["k_number"],"properties":{"k_number":{"type":"string","description":"510(k) number (e.g. 'K123456')"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":100,"tokensAfter":100},{"name":"health_drug_lookup","fixed":{"name":"health_drug_lookup","description":"Look up an FDA drug label by NDC or brand/generic name — active ingredients, purpose, indications, warnings, dosage, manufacturer. Source: openFDA (U.S. FDA), public data. Attribution: Data provided by the U.S. Food and Drug Administration (openFDA).","inputSchema":{"type":"object","required":["identifier"],"properties":{"type":{"type":"string","description":"Interpretation override: auto (default — NDC if numeric, else name), ndc, name"},"identifier":{"type":"string","description":"NDC code (e.g. '0113-0611') or brand/generic name (e.g. 'Aspirin', 'Ibuprofen')"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":172,"tokensAfter":172},{"name":"health_drug_ndc","fixed":{"name":"health_drug_ndc","description":"Look up an FDA drug label by National Drug Code (NDC) — active ingredients, purpose, indications, warnings, manufacturer. Source: openFDA (U.S. FDA), public data.","inputSchema":{"type":"object","required":["ndc"],"properties":{"ndc":{"type":"string","description":"NDC code, with or without dashes (e.g. '0113-0611' or '01130611')"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":105,"tokensAfter":105},{"name":"health_drug_search","fixed":{"name":"health_drug_search","description":"Search FDA drug labels by brand name, generic name, or active ingredient — returns brand, generic, manufacturer, purpose, and indications. Source: openFDA (U.S. FDA), public data.","inputSchema":{"type":"object","required":["q"],"properties":{"q":{"type":"string","description":"Search query (e.g. 'aspirin', 'metformin', 'insulin glargine')"},"limit":{"type":"number","description":"Max results (1-20, default 5)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":129,"tokensAfter":129},{"name":"health_recalls","fixed":{"name":"health_recalls","description":"FDA enforcement recalls (drugs, devices, food) — search by product keyword, or most recent when no query. Returns product, reason, classification, status, company. Source: openFDA (U.S. FDA), public data.","inputSchema":{"type":"object","required":[],"properties":{"limit":{"type":"number","description":"Max results (1-20, default 5)"},"product":{"type":"string","description":"Product description or keyword (e.g. 'aspirin', 'syringe', 'peanut butter')"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":139,"tokensAfter":139},{"name":"health_recalls_by_company","fixed":{"name":"health_recalls_by_company","description":"FDA enforcement recalls for a specific recalling firm/company — product, reason, classification, status. Source: openFDA (U.S. FDA), public data.","inputSchema":{"type":"object","required":["company"],"properties":{"limit":{"type":"number","description":"Max results (1-20, default 5)"},"company":{"type":"string","description":"Recalling firm name (e.g. 'McNeil Consumer Healthcare', 'Baxter')"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":125,"tokensAfter":125},{"name":"health_summary","fixed":{"name":"health_summary","description":"Health data API overview — endpoint list, most recent FDA recall, and live sample counts (aspirin adverse events + labels). Source: openFDA (U.S. FDA), public data.","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":75,"tokensAfter":75},{"name":"nonprofit_990_lookup","fixed":{"name":"nonprofit_990_lookup","description":"Get IRS Form 990 financial data for a US nonprofit by EIN — revenue, expenses, assets, liabilities, officer compensation, contributions, and program revenue from the latest 990/990-EZ/990-PF filing, plus 5-year filing history. Source: ProPublica Nonprofit Explorer (public-domain IRS 990 XML).","inputSchema":{"type":"object","required":["ein"],"properties":{"ein":{"type":"string","description":"Employer Identification Number — 9 digits, with or without dash (e.g. '530196605' or '53-0196605'). Look up any nonprofit via the IRS Tax Exempt Organization Search."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":171,"tokensAfter":171},{"name":"search_filings","fixed":{"name":"search_filings","description":"Search filings for a company — search by form type, date range, keywords. Use get_filing_types first to see what's available.","inputSchema":{"type":"object","required":["ticker"],"properties":{"limit":{"type":"number","description":"Number of filings to return (default 10)"},"ticker":{"type":"string","description":"Stock ticker symbol"},"form_type":{"type":"string","description":"Form type filter (e.g. 10-K, 10-Q, 8-K)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":130,"tokensAfter":130},{"name":"search_scholarly","fixed":{"name":"search_scholarly","description":"Search scholarly research works (OpenAlex, keyless) — titles, authors, year, citation counts","inputSchema":{"type":"object","required":[],"properties":{"query":{"type":"string","description":"Search terms (e.g. 'quantum computing')"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":78,"tokensAfter":78},{"name":"uk_company_charges","fixed":{"name":"uk_company_charges","description":"Get registered charges (mortgages/debentures) for a UK company. Source: Companies House (UK). Best for credit risk assessment.","inputSchema":{"type":"object","required":["number"],"properties":{"number":{"type":"string","description":"UK company number (e.g. 00002078)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":89,"tokensAfter":89},{"name":"uk_company_health","fixed":{"name":"uk_company_health","description":"Get a derived 'company health' grade (A-E) for a UK company from status, charges, and filing signals. Differentiator vs raw register. Heuristic, not financial advice.","inputSchema":{"type":"object","required":["number"],"properties":{"number":{"type":"string","description":"UK company number (e.g. 00002078)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":100,"tokensAfter":100},{"name":"uk_company_search","fixed":{"name":"uk_company_search","description":"Search UK companies by name or number — returns number, status, type, creation date, address. Source: Companies House (UK), OGL v3.0.","inputSchema":{"type":"object","required":["q"],"properties":{"q":{"type":"string","description":"Company name or number search term (e.g. 'BBC' or '00002078')"},"limit":{"type":"integer","description":"Max results (default 10)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":114,"tokensAfter":114},{"name":"uk_officer_search","fixed":{"name":"uk_officer_search","description":"Search UK company officers (directors) by name. Source: Companies House (UK). Best for director background checks.","inputSchema":{"type":"object","required":["q"],"properties":{"q":{"type":"string","description":"Officer name search term (e.g. 'John Smith')"},"limit":{"type":"integer","description":"Max results (default 10)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":104,"tokensAfter":104}],"toolsChanged":45,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}