// AUTO-GENERATED by tools/gen-fields.py — DO NOT EDIT
// Source: rust/core/fields.yaml

use crate::field::Field;
use crate::gen;

pub static REGISTRY: &[Field] = &[
    // core
    Field::new(
        "f00001",
        "integer",
        "core",
        "Random whole number in configurable range",
        gen::integer::gen,
    ),
    Field::new("f00002", "float", "core", "Decimal number with 2-digit precision", gen::float::gen),
    Field::new(
        "f00003",
        "boolean",
        "core",
        "true or false with equal probability",
        gen::boolean::gen,
    ),
    Field::new("f00004", "digit", "core", "Single decimal digit [0-9]", gen::digit::gen),
    Field::new("f00005", "bit", "core", "Binary value, 0 or 1", gen::bit::gen),
    Field::new("f00006", "trit", "core", "Ternary digit (-1, 0, or 1)", gen::trit::gen),
    Field::new(
        "f00007",
        "enum",
        "core",
        "Random pick from values (enum:a,b,c) with weights (enum:a=3,b=1)",
        gen::enum_::gen,
    ),
    Field::new(
        "f00008",
        "serial",
        "core",
        "Zero-based record counter (0, 1, 2, ...)",
        gen::serial::gen,
    ),
    // text
    Field::new("f00009", "letter", "text", "Single ASCII letter [a-zA-Z]", gen::letter::gen),
    Field::new(
        "f00011",
        "trigram",
        "text",
        "Pronounceable three-letter syllable (baf, kel, zur)",
        gen::trigram::gen,
    ),
    Field::new(
        "f00012",
        "digits",
        "text",
        "Numeric digit string (digits:4 = 0469, digits:6:100..500 = 000342)",
        gen::digits::gen,
    ),
    Field::new(
        "f00013",
        "letters",
        "text",
        "Alphabetic string (letters:8 = kZmPqRtY)",
        gen::letters::gen,
    ),
    Field::new(
        "f00014",
        "alnum",
        "text",
        "Alphanumeric string (alnum:6 = xK7m2B)",
        gen::alnum::gen,
    ),
    Field::new(
        "f00015",
        "base64",
        "text",
        "Base64-encoded random bytes (base64:16 = aGVsbG8gd29y)",
        gen::base64::gen,
    ),
    Field::new(
        "f00016",
        "hex",
        "text",
        "Hexadecimal string (hex:4 = 0f3a, hex:8 = 0f3a7b2e)",
        gen::hex::gen,
    ),
    Field::new("f00017", "word", "text", "English-like word from vocabulary pool", gen::word::gen),
    Field::new(
        "f00018",
        "message",
        "text",
        "Multi-word natural language sentence",
        gen::message::gen,
    ),
    // daily
    Field::new("f00019", "emoji", "daily", "Single Unicode emoji character", gen::emoji::gen),
    // core
    Field::new(
        "f00020",
        "color",
        "core",
        "Color value: named (maroon), hex (#ff8800), or RGB components (120, 40, 200)",
        gen::color::gen,
    ),
    Field::new(
        "f00021",
        "uuid",
        "core",
        "Version 4 UUID [xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx]",
        gen::uuid::gen,
    ),
    // daily
    Field::new(
        "f00022",
        "bz",
        "daily",
        "Corporate buzzword or jargon phrase (synergy, leverage)",
        gen::bz::gen,
    ),
    Field::new("f00023", "dice", "daily", "Six-sided die roll result, 1 through 6", gen::dice::gen),
    Field::new(
        "f00024",
        "excuse",
        "daily",
        "Humorous developer excuse for being late or missing a deadline",
        gen::excuse::gen,
    ),
    Field::new(
        "f00025",
        "mball",
        "daily",
        "Magic 8-Ball fortune response (Yes definitely, Ask again later)",
        gen::eight_ball::gen,
    ),
    // time
    Field::new(
        "f00026",
        "timestamp",
        "time",
        "ISO 8601 datetime with timezone (2024-03-15T09:30:00Z)",
        gen::timestamp::gen,
    ),
    Field::new(
        "f00027",
        "date",
        "time",
        "Calendar date in locale-specific format (2024-03-15)",
        gen::date::gen,
    ),
    // person
    Field::new(
        "f00028",
        "name",
        "person",
        "Full person name with first and last components",
        gen::name::gen,
    ),
    Field::new(
        "f00029",
        "first-name",
        "person",
        "Given name from locale-aware dictionary",
        gen::first_name::gen,
    ),
    Field::new(
        "f00030",
        "last-name",
        "person",
        "Family name from locale-aware dictionary",
        gen::last_name::gen,
    ),
    Field::new(
        "f00031",
        "middle-name",
        "person",
        "Middle name or patronymic from locale-aware dictionary",
        gen::middle_name::gen,
    ),
    Field::new(
        "f00032",
        "birthdate",
        "person",
        "Date of birth with weighted age distribution",
        gen::birthdate::gen,
    ),
    Field::new(
        "f00213",
        "age",
        "person",
        "Age (18-100), weighted demographic distribution",
        gen::age::gen,
    ),
    Field::new(
        "f00033",
        "gender",
        "person",
        "Gender label (male, female, non-binary)",
        gen::gender::gen,
    ),
    Field::new(
        "f00034",
        "username",
        "person",
        "Clean platform handle [a-z0-9_]",
        gen::username::gen,
    ),
    Field::new(
        "f00035",
        "login-name",
        "person",
        "System login identifier, typically firstname.lastname",
        gen::login_name::gen,
    ),
    Field::new(
        "f00036",
        "social-handle",
        "person",
        "Social media display name with @ prefix (@cooluser99)",
        gen::social_handle::gen,
    ),
    Field::new(
        "f00212",
        "nickname",
        "person",
        "Creative alias unrelated to real name (darkwolf42, swiftcoder)",
        gen::nickname::gen,
    ),
    Field::new(
        "f00037",
        "biometric-id",
        "person",
        "Opaque biometric template reference [hex, 32 bytes]",
        gen::biometric_id::gen,
    ),
    Field::new(
        "f00038",
        "student-id",
        "person",
        "University or school student identifier [alphanumeric]",
        gen::student_id::gen,
    ),
    // contact
    Field::new(
        "f00039",
        "email",
        "contact",
        "Email with locale-aware name and domain",
        gen::email::gen,
    ),
    Field::new(
        "f00040",
        "phone",
        "contact",
        "Phone number with country code and locale formatting",
        gen::phone::gen,
    ),
    Field::new(
        "f00041",
        "address",
        "contact",
        "Full mailing address with street, city, state, and postal code",
        gen::address::gen,
    ),
    Field::new(
        "f00042",
        "street-address",
        "contact",
        "Street line with number and street name (742 Evergreen Terrace)",
        gen::street_address::gen,
    ),
    Field::new(
        "f00043",
        "city",
        "contact",
        "Real city name from weighted population data",
        gen::city::gen,
    ),
    Field::new(
        "f00044",
        "state",
        "contact",
        "US state or equivalent administrative region name",
        gen::state::gen,
    ),
    Field::new(
        "f00045",
        "postal-code",
        "contact",
        "ZIP or postal code matching locale format",
        gen::postal_code::gen,
    ),
    Field::new(
        "f00046",
        "country",
        "contact",
        "Full country name from ISO 3166 list",
        gen::country::gen,
    ),
    // location
    Field::new(
        "f00047",
        "latitude",
        "location",
        "Locale-aware geographic latitude, 4 decimal places",
        gen::latitude::gen,
    ),
    Field::new(
        "f00048",
        "longitude",
        "location",
        "Locale-aware geographic longitude, 4 decimal places",
        gen::longitude::gen,
    ),
    Field::new(
        "f00049",
        "country-code",
        "location",
        "ISO 3166-1 alpha-2 country code (US, DE, JP)",
        gen::country_code::gen,
    ),
    Field::new(
        "f00050",
        "phone-code",
        "location",
        "International dialing prefix (+1, +44, +81)",
        gen::phone_code::gen,
    ),
    Field::new(
        "f00051",
        "language-code",
        "location",
        "ISO 639-1 two-letter language code (en, fr, ja)",
        gen::language_code::gen,
    ),
    Field::new(
        "f00052",
        "locale-code",
        "location",
        "IETF BCP 47 locale tag (en-US, pt-BR, zh-Hans)",
        gen::locale_code::gen,
    ),
    Field::new(
        "f00053",
        "timezone",
        "location",
        "IANA timezone identifier (America/New_York, Europe/Berlin)",
        gen::timezone::gen,
    ),
    // finance
    Field::new(
        "f00054",
        "credit-card",
        "finance",
        "Valid-checksum card number with BIN prefix [16 digits]",
        gen::credit_card::gen,
    ),
    Field::new("f00055", "cvv", "finance", "Card verification value [3-4 digits]", gen::cvv::gen),
    Field::new(
        "f00056",
        "iban",
        "finance",
        "International Bank Account Number with valid check digits",
        gen::iban::gen,
    ),
    Field::new(
        "f00057",
        "swift-bic",
        "finance",
        "SWIFT/BIC bank identifier code [8 or 11 chars]",
        gen::swift_bic::gen,
    ),
    Field::new(
        "f00058",
        "routing-number",
        "finance",
        "US ABA routing transit number [9 digits, valid checksum]",
        gen::routing_number::gen,
    ),
    Field::new(
        "f00059",
        "bank-account",
        "finance",
        "Bank account number with locale-appropriate length",
        gen::bank_account::gen,
    ),
    Field::new(
        "f00060",
        "tax-id",
        "finance",
        "US Employer Identification Number [NN-NNNNNNN]",
        gen::tax_id::gen,
    ),
    Field::new(
        "f00061",
        "amount",
        "finance",
        "Monetary value with configurable currency and decimal format",
        gen::amount::gen,
    ),
    Field::new(
        "f00062",
        "currency-code",
        "finance",
        "ISO 4217 three-letter currency code (USD, EUR, GBP)",
        gen::currency_code::gen,
    ),
    Field::new(
        "f00063",
        "currency-symbol",
        "finance",
        "Unicode currency glyph ($, EUR, GBP, JPY)",
        gen::currency_symbol::gen,
    ),
    // auth
    Field::new(
        "f00064",
        "password",
        "auth",
        "Password with configurable length (password:12 for exact)",
        gen::password::gen,
    ),
    Field::new(
        "f00065",
        "jwt",
        "auth",
        "JSON Web Token with valid header.payload.signature structure",
        gen::jwt::gen,
    ),
    Field::new(
        "f00066",
        "bearer-token",
        "auth",
        "OAuth2 bearer token, opaque [base64url, 32+ bytes]",
        gen::bearer_token::gen,
    ),
    Field::new(
        "f00067",
        "api-key",
        "auth",
        "Generic API key [alphanumeric, 32-48 chars]",
        gen::api_key::gen,
    ),
    Field::new(
        "f00068",
        "totp-secret",
        "auth",
        "TOTP shared secret [base32, 16+ chars]",
        gen::totp_secret::gen,
    ),
    Field::new(
        "f00069",
        "oauth-client-secret",
        "auth",
        "OAuth2 client secret [alphanumeric, 40 chars]",
        gen::oauth_client_secret::gen,
    ),
    Field::new(
        "f00070",
        "aws-access-key",
        "auth",
        "AWS access key ID [AKIA...]",
        gen::aws_access_key::gen,
    ),
    Field::new(
        "f00071",
        "aws-secret-key",
        "auth",
        "AWS secret access key [base64, 40 chars]",
        gen::aws_secret_key::gen,
    ),
    Field::new(
        "f00072",
        "stripe-key",
        "auth",
        "Stripe API key with environment prefix [sk_live_..., sk_test_...]",
        gen::stripe_key::gen,
    ),
    Field::new(
        "f00073",
        "github-pat",
        "auth",
        "GitHub personal access token [ghp_...]",
        gen::github_pat::gen,
    ),
    Field::new(
        "f00074",
        "gitlab-token",
        "auth",
        "GitLab personal or project token [glpat-...]",
        gen::gitlab_token::gen,
    ),
    Field::new("f00075", "openai-key", "auth", "OpenAI API key [sk-...]", gen::openai_key::gen),
    Field::new(
        "f00076",
        "sendgrid-key",
        "auth",
        "SendGrid API key [SG....]",
        gen::sendgrid_key::gen,
    ),
    Field::new("f00077", "twilio-sid", "auth", "Twilio Account SID [AC...]", gen::twilio_sid::gen),
    Field::new(
        "f00078",
        "twilio-token",
        "auth",
        "Twilio auth token [hex, 32 chars]",
        gen::twilio_token::gen,
    ),
    Field::new(
        "f00079",
        "slack-bot-token",
        "auth",
        "Slack bot OAuth token [xoxb-...]",
        gen::slack_bot_token::gen,
    ),
    Field::new(
        "f00080",
        "slack-user-token",
        "auth",
        "Slack user OAuth token [xoxp-...]",
        gen::slack_user_token::gen,
    ),
    Field::new(
        "f00081",
        "datadog-key",
        "auth",
        "Datadog API or application key [hex, 32 chars]",
        gen::datadog_key::gen,
    ),
    Field::new(
        "f00082",
        "sentry-dsn",
        "auth",
        "Sentry Data Source Name URL with project ID",
        gen::sentry_dsn::gen,
    ),
    Field::new(
        "f00083",
        "vault-token",
        "auth",
        "HashiCorp Vault access token [hvs....]",
        gen::vault_token::gen,
    ),
    Field::new(
        "f00084",
        "npm-token",
        "auth",
        "npm registry auth token [npm_...]",
        gen::npm_token::gen,
    ),
    Field::new(
        "f00085",
        "vercel-token",
        "auth",
        "Vercel deployment token [alphanumeric, 24 chars]",
        gen::vercel_token::gen,
    ),
    Field::new(
        "f00086",
        "supabase-key",
        "auth",
        "Supabase anon or service-role JWT key",
        gen::supabase_key::gen,
    ),
    Field::new(
        "f00087",
        "telegram-token",
        "auth",
        "Telegram Bot API token [NNNNNNNNNN:AAxx...]",
        gen::telegram_token::gen,
    ),
    Field::new(
        "f00088",
        "discord-webhook",
        "auth",
        "Discord webhook URL with token path",
        gen::discord_webhook::gen,
    ),
    Field::new(
        "f00089",
        "gcp-key",
        "auth",
        "Google Cloud Platform API key [AIza...]",
        gen::gcp_key::gen,
    ),
    Field::new(
        "f00090",
        "azure-key",
        "auth",
        "Microsoft Azure subscription or service key [base64]",
        gen::azure_key::gen,
    ),
    Field::new(
        "f00091",
        "cloudflare-token",
        "auth",
        "Cloudflare API token [alphanumeric, 40 chars]",
        gen::cloudflare_token::gen,
    ),
    Field::new(
        "f00092",
        "pagerduty-key",
        "auth",
        "PagerDuty API key [alphanumeric, 20 chars]",
        gen::pagerduty_key::gen,
    ),
    Field::new(
        "f00093",
        "newrelic-key",
        "auth",
        "New Relic API key [NRAK-...]",
        gen::newrelic_key::gen,
    ),
    Field::new(
        "f00094",
        "splunk-token",
        "auth",
        "Splunk HEC auth token [UUID format]",
        gen::splunk_token::gen,
    ),
    Field::new(
        "f00095",
        "heroku-key",
        "auth",
        "Heroku API key [UUID format]",
        gen::heroku_key::gen,
    ),
    Field::new(
        "f00096",
        "firebase-key",
        "auth",
        "Firebase Web API key [AIza...]",
        gen::firebase_key::gen,
    ),
    Field::new(
        "f00097",
        "ssh-private-key",
        "auth",
        "PEM-encoded SSH private key block (RSA or Ed25519)",
        gen::ssh_private_key::gen,
    ),
    Field::new(
        "f00098",
        "ssh-public-key",
        "auth",
        "OpenSSH public key line (ssh-rsa ..., ssh-ed25519 ...)",
        gen::ssh_public_key::gen,
    ),
    Field::new(
        "f00099",
        "connection-string",
        "auth",
        "Database connection URI with credentials (postgres://user:pass@...)",
        gen::connection_string::gen,
    ),
    Field::new(
        "f00100",
        "anthropic-key",
        "auth",
        "Anthropic API key [sk-ant-...]",
        gen::anthropic_key::gen,
    ),
    Field::new(
        "f00101",
        "session-id",
        "auth",
        "Opaque session identifier [base64url, 32+ bytes]",
        gen::session_id::gen,
    ),
    Field::new(
        "f00102",
        "passkey-id",
        "auth",
        "WebAuthn passkey credential ID [base64url]",
        gen::passkey_id::gen,
    ),
    Field::new(
        "f00103",
        "facebook-token",
        "auth",
        "Facebook/Meta Graph API access token [EAA...]",
        gen::facebook_token::gen,
    ),
    Field::new(
        "f00104",
        "google-token",
        "auth",
        "Google OAuth2 access token [ya29....]",
        gen::google_token::gen,
    ),
    Field::new(
        "f00105",
        "apple-token",
        "auth",
        "Apple Sign-In JWT identity token",
        gen::apple_token::gen,
    ),
    Field::new(
        "f00106",
        "refresh-token",
        "auth",
        "OAuth2 refresh token [opaque, 64+ chars]",
        gen::refresh_token::gen,
    ),
    Field::new(
        "f00107",
        "csrf-token",
        "auth",
        "Cross-site request forgery protection token [hex, 32 bytes]",
        gen::csrf_token::gen,
    ),
    Field::new(
        "f00108",
        "basic-auth",
        "auth",
        "HTTP Basic auth header value [base64(user:pass)]",
        gen::basic_auth::gen,
    ),
    // gov-id
    Field::new("f00109", "ssn", "gov-id", "US Social Security Number [NNN-NN-NNNN]", gen::ssn::gen),
    Field::new(
        "f00110",
        "passport",
        "gov-id",
        "Passport number with country-appropriate format",
        gen::passport::gen,
    ),
    Field::new(
        "f00111",
        "drivers-license",
        "gov-id",
        "US driver's license number, state-format-aware",
        gen::drivers_license::gen,
    ),
    Field::new(
        "f00112",
        "national-id",
        "gov-id",
        "Generic national identity number for configurable country",
        gen::national_id::gen,
    ),
    Field::new(
        "f00113",
        "cpf",
        "gov-id",
        "Brazil Cadastro de Pessoa Fisica [NNN.NNN.NNN-NN]",
        gen::cpf::gen,
    ),
    Field::new(
        "f00114",
        "sin",
        "gov-id",
        "Canada Social Insurance Number [NNN-NNN-NNN]",
        gen::sin::gen,
    ),
    Field::new("f00115", "tfn", "gov-id", "Australia Tax File Number [NNN NNN NNN]", gen::tfn::gen),
    Field::new(
        "f00116",
        "nino",
        "gov-id",
        "UK National Insurance Number [AA NNNNNN A]",
        gen::nino::gen,
    ),
    Field::new(
        "f00117",
        "nhs-number",
        "gov-id",
        "UK National Health Service number [NNN NNN NNNN]",
        gen::nhs_number::gen,
    ),
    Field::new(
        "f00118",
        "nir",
        "gov-id",
        "France national ID registration number [13 digits + key]",
        gen::nir::gen,
    ),
    Field::new(
        "f00119",
        "codice-fiscale",
        "gov-id",
        "Italy fiscal code [16 alphanumeric chars]",
        gen::codice_fiscale::gen,
    ),
    Field::new(
        "f00120",
        "dni",
        "gov-id",
        "Spain Documento Nacional de Identidad [8 digits + letter]",
        gen::dni::gen,
    ),
    Field::new(
        "f00121",
        "nie",
        "gov-id",
        "Spain foreigner identification number [X/Y/Z + 7 digits + letter]",
        gen::nie::gen,
    ),
    Field::new(
        "f00122",
        "bsn",
        "gov-id",
        "Netherlands Burgerservicenummer [9 digits]",
        gen::bsn::gen,
    ),
    Field::new(
        "f00123",
        "personnummer",
        "gov-id",
        "Sweden personal identity number [YYYYMMDD-NNNN]",
        gen::personnummer::gen,
    ),
    Field::new(
        "f00124",
        "steuer-id",
        "gov-id",
        "Germany tax identification number [11 digits]",
        gen::steuer_id::gen,
    ),
    Field::new(
        "f00125",
        "cuil",
        "gov-id",
        "Argentina labor identification code [NN-NNNNNNNN-N]",
        gen::cuil::gen,
    ),
    Field::new(
        "f00126",
        "jmbg",
        "gov-id",
        "Former Yugoslavia unique master citizen number [13 digits]",
        gen::jmbg::gen,
    ),
    Field::new(
        "f00127",
        "tc-kimlik",
        "gov-id",
        "Turkey national identity number [11 digits]",
        gen::tc_kimlik::gen,
    ),
    Field::new(
        "f00128",
        "pesel",
        "gov-id",
        "Poland national identification number [11 digits]",
        gen::pesel::gen,
    ),
    Field::new(
        "f00129",
        "curp",
        "gov-id",
        "Mexico population registry key [18 alphanumeric chars]",
        gen::curp::gen,
    ),
    Field::new(
        "f00130",
        "rut",
        "gov-id",
        "Chile unique tax role number [NN.NNN.NNN-D]",
        gen::rut::gen,
    ),
    Field::new(
        "f00131",
        "inn",
        "gov-id",
        "Russia taxpayer identification number [10 or 12 digits]",
        gen::inn::gen,
    ),
    Field::new(
        "f00132",
        "ipn",
        "gov-id",
        "Ukraine individual tax number [10 digits]",
        gen::ipn::gen,
    ),
    Field::new("f00133", "abn", "gov-id", "Australia Business Number [11 digits]", gen::abn::gen),
    Field::new(
        "f00134",
        "cnpj",
        "gov-id",
        "Brazil corporate taxpayer registry [NN.NNN.NNN/NNNN-NN]",
        gen::cnpj::gen,
    ),
    Field::new(
        "f00135",
        "oib",
        "gov-id",
        "Croatia personal identification number [11 digits]",
        gen::oib::gen,
    ),
    Field::new(
        "f00136",
        "amka",
        "gov-id",
        "Greece social security number [11 digits]",
        gen::amka::gen,
    ),
    Field::new(
        "f00137",
        "rodne-cislo",
        "gov-id",
        "Czech/Slovakia birth number [NNNNNN/NNNN]",
        gen::rodne_cislo::gen,
    ),
    Field::new(
        "f00138",
        "szemelyi-szam",
        "gov-id",
        "Hungary personal identification number [N-NNNNNN-A]",
        gen::szemelyi_szam::gen,
    ),
    Field::new(
        "f00139",
        "hetu",
        "gov-id",
        "Finland personal identity code [DDMMYY-NNNC]",
        gen::hetu::gen,
    ),
    Field::new(
        "f00140",
        "cpr",
        "gov-id",
        "Denmark civil registration number [DDMMYY-NNNN]",
        gen::cpr::gen,
    ),
    Field::new(
        "f00141",
        "fodselsnummer",
        "gov-id",
        "Norway national identity number [11 digits]",
        gen::fodselsnummer::gen,
    ),
    Field::new(
        "f00142",
        "pps",
        "gov-id",
        "Ireland Personal Public Service number [NNNNNNNAA]",
        gen::pps::gen,
    ),
    Field::new(
        "f00143",
        "emso",
        "gov-id",
        "Slovenia unique master citizen number [13 digits]",
        gen::emso::gen,
    ),
    Field::new(
        "f00144",
        "egn",
        "gov-id",
        "Bulgaria Unified Civil Number [10 digits]",
        gen::egn::gen,
    ),
    Field::new(
        "f00145",
        "idnp",
        "gov-id",
        "Moldova personal identification number [13 digits]",
        gen::idnp::gen,
    ),
    Field::new(
        "f00146",
        "health-card",
        "gov-id",
        "Provincial health insurance card number (Canada)",
        gen::health_card::gen,
    ),
    Field::new(
        "f00147",
        "cedula",
        "gov-id",
        "Colombia/Ecuador/Venezuela national ID card number",
        gen::cedula::gen,
    ),
    Field::new(
        "f00148",
        "aadhaar",
        "gov-id",
        "India unique identity number [NNNN NNNN NNNN]",
        gen::aadhaar::gen,
    ),
    Field::new(
        "f00149",
        "pan",
        "gov-id",
        "India Permanent Account Number [AAAAA9999A]",
        gen::pan::gen,
    ),
    Field::new(
        "f00150",
        "cccd",
        "gov-id",
        "Vietnam citizen identity card number [12 digits]",
        gen::cccd::gen,
    ),
    Field::new(
        "f00151",
        "shenfenzheng",
        "gov-id",
        "China resident identity card number [18 digits]",
        gen::shenfenzheng::gen,
    ),
    // internet
    Field::new(
        "f00152",
        "ip",
        "internet",
        "IPv4 address in dotted-decimal notation (192.168.1.42)",
        gen::ip::gen,
    ),
    Field::new(
        "f00153",
        "ipv6",
        "internet",
        "Full IPv6 address [8 colon-separated hextets]",
        gen::ipv6::gen,
    ),
    Field::new("f00154", "mac", "internet", "MAC address [AA:BB:CC:DD:EE:FF]", gen::mac::gen),
    Field::new(
        "f00155",
        "url",
        "internet",
        "Well-formed URL with scheme, host, and path",
        gen::url::gen,
    ),
    Field::new(
        "f00156",
        "auth-url",
        "internet",
        "URL with embedded credentials (scheme://user:pass@host/path)",
        gen::auth_url::gen,
    ),
    Field::new(
        "f00157",
        "internal-url",
        "internet",
        "Private-network URL targeting RFC 1918 or localhost",
        gen::internal_url::gen,
    ),
    Field::new(
        "f00158",
        "dns-record",
        "internet",
        "DNS resource record line (A, AAAA, CNAME, MX)",
        gen::dns_record::gen,
    ),
    Field::new(
        "f00159",
        "browser-cookie",
        "internet",
        "HTTP Set-Cookie header value with name, value, and attributes",
        gen::browser_cookie::gen,
    ),
    Field::new(
        "f00160",
        "user-agent",
        "internet",
        "Browser or bot User-Agent header string",
        gen::user_agent::gen,
    ),
    Field::new(
        "f00161",
        "mime-type",
        "internet",
        "IANA media type (application/json, image/png)",
        gen::mime_type::gen,
    ),
    Field::new(
        "f00162",
        "http-method",
        "internet",
        "HTTP request method (GET, POST, PUT, DELETE)",
        gen::http_method::gen,
    ),
    Field::new(
        "f00163",
        "http-status",
        "internet",
        "HTTP response status code with reason (200 OK, 404 Not Found)",
        gen::http_status::gen,
    ),
    Field::new(
        "f00214",
        "port",
        "internet",
        "TCP/UDP port number with weighted service distribution",
        gen::port::gen,
    ),
    Field::new(
        "f00215",
        "latency",
        "internet",
        "Response latency in milliseconds, log-normal distribution (1-30000)",
        gen::latency::gen,
    ),
    Field::new(
        "f00164",
        "image-url",
        "internet",
        "Placeholder image URL with configurable aspect ratio",
        gen::image_url::gen,
    ),
    Field::new(
        "f00165",
        "twitter-url",
        "internet",
        "X/Twitter profile or post URL (https://x.com/...)",
        gen::twitter_url::gen,
    ),
    Field::new(
        "f00166",
        "linkedin-url",
        "internet",
        "LinkedIn profile URL (https://linkedin.com/in/...)",
        gen::linkedin_url::gen,
    ),
    Field::new(
        "f00167",
        "facebook-url",
        "internet",
        "Facebook profile URL (https://facebook.com/...)",
        gen::facebook_url::gen,
    ),
    Field::new(
        "f00168",
        "instagram-url",
        "internet",
        "Instagram profile URL (https://instagram.com/...)",
        gen::instagram_url::gen,
    ),
    Field::new(
        "f00169",
        "github-url",
        "internet",
        "GitHub user or repo URL (https://github.com/...)",
        gen::github_url::gen,
    ),
    Field::new(
        "f00170",
        "telegram-url",
        "internet",
        "Telegram profile or invite URL (https://t.me/...)",
        gen::telegram_url::gen,
    ),
    Field::new(
        "f00171",
        "youtube-url",
        "internet",
        "YouTube video or channel URL (https://youtube.com/...)",
        gen::youtube_url::gen,
    ),
    Field::new(
        "f00172",
        "webhook-url",
        "internet",
        "Generic webhook endpoint URL with token path",
        gen::webhook_url::gen,
    ),
    // blockchain
    Field::new(
        "f00173",
        "btc-address",
        "blockchain",
        "Bitcoin address, P2PKH or Bech32 format (1..., bc1...)",
        gen::btc_address::gen,
    ),
    Field::new(
        "f00174",
        "eth-address",
        "blockchain",
        "Ethereum address with EIP-55 checksum [0x + 40 hex chars]",
        gen::eth_address::gen,
    ),
    Field::new(
        "f00175",
        "sol-address",
        "blockchain",
        "Solana base58-encoded public key [32-44 chars]",
        gen::sol_address::gen,
    ),
    Field::new(
        "f00176",
        "tx-hash",
        "blockchain",
        "Blockchain transaction hash [hex, 64 chars]",
        gen::tx_hash::gen,
    ),
    Field::new(
        "f00177",
        "pgp-fingerprint",
        "blockchain",
        "PGP key fingerprint [40 hex chars, space-grouped]",
        gen::pgp_fingerprint::gen,
    ),
    // organization
    Field::new(
        "f00178",
        "company-name",
        "organization",
        "Business name with optional suffix (Inc, LLC, GmbH)",
        gen::company_name::gen,
    ),
    Field::new(
        "f00179",
        "ein",
        "organization",
        "US Employer Identification Number [NN-NNNNNNN]",
        gen::ein::gen,
    ),
    Field::new(
        "f00180",
        "vat-number",
        "organization",
        "EU Value Added Tax identification number with country prefix",
        gen::vat_number::gen,
    ),
    Field::new(
        "f00181",
        "duns",
        "organization",
        "Dun & Bradstreet business identifier [9 digits]",
        gen::duns::gen,
    ),
    Field::new(
        "f00182",
        "lei",
        "organization",
        "Legal Entity Identifier [20 alphanumeric chars]",
        gen::lei::gen,
    ),
    Field::new(
        "f00183",
        "job-title",
        "organization",
        "Professional role title (Senior Engineer, Product Manager)",
        gen::job_title::gen,
    ),
    Field::new(
        "f00184",
        "ldap-dn",
        "organization",
        "LDAP distinguished name (cn=John,ou=Users,dc=example,dc=com)",
        gen::ldap_dn::gen,
    ),
    Field::new(
        "f00185",
        "employee-id",
        "organization",
        "Internal employee identifier [alphanumeric, prefixed]",
        gen::employee_id::gen,
    ),
    Field::new(
        "f00186",
        "court-case",
        "organization",
        "US federal court case number (1:24-cv-01234)",
        gen::court_case::gen,
    ),
    // healthcare
    Field::new(
        "f00187",
        "mrn",
        "healthcare",
        "Medical Record Number, facility-scoped [alphanumeric]",
        gen::mrn::gen,
    ),
    Field::new(
        "f00188",
        "npi",
        "healthcare",
        "US National Provider Identifier [10 digits, Luhn-valid]",
        gen::npi::gen,
    ),
    Field::new(
        "f00189",
        "insurance-id",
        "healthcare",
        "Health insurance member or policy ID [alphanumeric]",
        gen::insurance_id::gen,
    ),
    Field::new(
        "f00190",
        "medicare-id",
        "healthcare",
        "US Medicare Beneficiary Identifier [11 alphanumeric chars]",
        gen::medicare_id::gen,
    ),
    Field::new(
        "f00191",
        "icd-10",
        "healthcare",
        "ICD-10 diagnosis code (A00.0, J06.9, M54.5)",
        gen::icd_10::gen,
    ),
    Field::new(
        "f00192",
        "cpt-code",
        "healthcare",
        "CPT medical procedure code [5 digits]",
        gen::cpt_code::gen,
    ),
    Field::new(
        "f00193",
        "ndc",
        "healthcare",
        "US National Drug Code [NNNNN-NNNN-NN]",
        gen::ndc::gen,
    ),
    Field::new(
        "f00194",
        "rx-number",
        "healthcare",
        "Pharmacy prescription number [7-12 digits]",
        gen::rx_number::gen,
    ),
    // dev
    Field::new(
        "f00195",
        "project-code",
        "dev",
        "Short project identifier with prefix (PRJ-0042, ACME-117)",
        gen::project_code::gen,
    ),
    Field::new("f00196", "jira-id", "dev", "Jira issue key [PROJECT-NNNN]", gen::jira_id::gen),
    Field::new(
        "f00197",
        "github-issue",
        "dev",
        "GitHub issue reference (owner/repo#1234)",
        gen::github_issue::gen,
    ),
    Field::new(
        "f00198",
        "commit-hash",
        "dev",
        "Git commit SHA-1 hash [hex, 40 chars]",
        gen::commit_hash::gen,
    ),
    Field::new(
        "f00199",
        "semver",
        "dev",
        "Semantic version string (1.4.2, 0.12.0-beta.3)",
        gen::semver::gen,
    ),
    // ops
    Field::new(
        "f00200",
        "docker-image",
        "ops",
        "Docker image reference with registry, name, and tag",
        gen::docker_image::gen,
    ),
    Field::new(
        "f00201",
        "slack-channel",
        "ops",
        "Slack channel name with # prefix (#engineering, #alerts)",
        gen::slack_channel::gen,
    ),
    Field::new(
        "f00202",
        "sentry-issue",
        "ops",
        "Sentry issue identifier [PROJECT-HASH]",
        gen::sentry_issue::gen,
    ),
    Field::new(
        "f00203",
        "pagerduty-incident",
        "ops",
        "PagerDuty incident ID [alphanumeric, 7+ chars]",
        gen::pagerduty_incident::gen,
    ),
    Field::new(
        "f00204",
        "file-path",
        "ops",
        "Unix-style absolute file path (/var/log/app/server.log)",
        gen::file_path::gen,
    ),
    Field::new(
        "f00205",
        "s3-path",
        "ops",
        "AWS S3 object URI (s3://bucket-name/key/path)",
        gen::s3_path::gen,
    ),
    Field::new(
        "f00206",
        "env-var",
        "ops",
        "Environment variable assignment (DATABASE_URL=postgres://...)",
        gen::env_var::gen,
    ),
    // device
    Field::new(
        "f00207",
        "vin",
        "device",
        "Vehicle Identification Number [17 alphanumeric chars]",
        gen::vin::gen,
    ),
    Field::new(
        "f00208",
        "license-plate",
        "device",
        "Vehicle registration plate with locale-appropriate format",
        gen::license_plate::gen,
    ),
    Field::new(
        "f00209",
        "imei",
        "device",
        "Mobile device IMEI [15 digits, Luhn-valid]",
        gen::imei::gen,
    ),
    Field::new(
        "f00210",
        "imsi",
        "device",
        "Mobile subscriber identity [15 digits, MCC+MNC prefix]",
        gen::imsi::gen,
    ),
    Field::new(
        "f00211",
        "device-id",
        "device",
        "Opaque hardware or app-instance identifier [UUID or hex]",
        gen::device_id::gen,
    ),
];

pub const GROUPS: &[&str] = &[
    "daily",
    "core",
    "text",
    "time",
    "person",
    "contact",
    "location",
    "finance",
    "auth",
    "gov-id",
    "internet",
    "blockchain",
    "organization",
    "healthcare",
    "dev",
    "ops",
    "device",
];

pub fn field_modifiers(id: &str) -> &'static str {
    match id {
        "f00005" => "sign",
        "f00016" => "byte",
        "f00020" => "hex, rgb, rgba",
        "f00021" | "f00056" | "f00109" | "f00113" | "f00134" => "plain",
        "f00026" => "unix, ms, log",
        "f00027" | "f00032" => "us, eu",
        "f00034" | "f00035" | "f00036" | "f00212" | "f00039" => "xuniq",
        "f00040" => "e164, intl, plain",
        "f00049" => "alpha3, numeric",
        "f00052" => "short, underscore",
        "f00054" => "space, dash, plain",
        "f00061" => "dot, comma, plain, usd, eur, gbp",
        "f00062" => "crypto",
        "f00064" => "pin, memorable, mixed, strong",
        "f00110" => "international, internal",
        "f00154" => "plain, dot",
        "f00155" => "http, https, ftp, ws, wss, ssh",
        "f00214" => "system, registered, dynamic, unprivileged, service",
        "f00215" => "fast, slow, seconds",
        "f00164" => "1x1, 4x3, 3x2, 16x9, 21x9, 9x16, 3x4, 2x3",
        "f00176" => "btc",
        "f00206" => "multi",
        _ => "",
    }
}

pub fn field_capabilities(id: &str) -> &'static str {
    match id {
        "f00001" | "f00002" | "f00213" => "range, asc/desc",
        "f00005" => "sign",
        "f00012" => "N, range, asc/desc",
        "f00013" | "f00014" | "f00015" => "N",
        "f00016" => "byte, N",
        "f00020" => "hex, rgb, rgba",
        "f00021" | "f00056" | "f00109" | "f00113" | "f00134" => "plain",
        "f00026" => "unix, ms, log, range, asc/desc",
        "f00027" => "us, eu, range, asc/desc",
        "f00032" => "us, eu, range",
        "f00034" | "f00035" | "f00036" | "f00212" | "f00039" => "xuniq",
        "f00040" => "e164, intl, plain",
        "f00049" => "alpha3, numeric",
        "f00052" => "short, underscore",
        "f00054" => "space, dash, plain",
        "f00061" => "dot, comma, plain, usd, eur, gbp, range, asc/desc",
        "f00062" => "crypto",
        "f00064" => "pin, memorable, mixed, strong, N",
        "f00110" => "international, internal",
        "f00154" => "plain, dot",
        "f00155" => "http, https, ftp, ws, wss, ssh",
        "f00214" => "system, registered, dynamic, unprivileged, service",
        "f00215" => "fast, slow, seconds, asc/desc",
        "f00164" => "1x1, 4x3, 3x2, 16x9, 21x9, 9x16, 3x4, 2x3",
        "f00176" => "btc",
        "f00206" => "multi",
        _ => "",
    }
}
