{
  "name": "Your night sky companion",
  "description": "A night sky companion: tonight's sky forecast (cloud, darkness, the Moon) and an hour-by-hour cloud forecast map, an interactive sky map (Hipparcos stars, constellations, planets, comets, satellites and survey photographs of deep-sky objects, with a simulated view through your own saved telescope, eyepiece and camera setups), a 3D universe (the Solar System with real positions and surface maps, nearby stars placed by parallax, the Milky Way and nearby galaxies), computed targets for any place, night and equipment, ten astronomy and astrophotography tools including a modelled light-pollution (Bortle) map and nine quick calculators, an AI assistant for questions about any object, and a buying guide that ranks telescopes, mounts, tripods, cameras, guide scopes, filters, focusers, rotators and eyepieces by fit.",
  "sections": {
    "home": "/",
    "tonight": "/tonight",
    "sky": "/sky",
    "events": "/events",
    "spaceWeather": "/space",
    "universe": "/universe",
    "targets": "/targets",
    "tools": "/tools",
    "buyingGuide": "/{category}"
  },
  "updated": "2026-10-24",
  "products": 497,
  "prices": "Typical new street prices in US dollars (approximate). Retailer pages have the final word.",
  "schema": "data/SCHEMA.md",
  "skyObjects": {
    "count": 212,
    "data": "data/objects.json",
    "types": [
      "snr",
      "globular",
      "open",
      "emission",
      "starcloud",
      "planetary",
      "galaxy",
      "double",
      "asterism",
      "reflection",
      "dark",
      "galaxygroup",
      "star"
    ],
    "note": "Deep-sky catalogue (all Messier objects plus showpiece NGC/IC objects, double and coloured stars). Coordinates J2000 in degrees, size in arcminutes, sb = mean surface brightness in mag/arcsec²."
  },
  "sky": {
    "page": "/sky",
    "stars": {
      "files": [
        "data/sky/stars-a.bin",
        "data/sky/stars-b.bin"
      ],
      "count": 117955,
      "format": "8 bytes per star, brightest first: RA and Dec as little-endian 24-bit fractions (RA/360 and (Dec+90)/180), a magnitude byte (V+2)×16 and a colour byte (B−V+0.5)×80. J2000 frame with proper motion applied to 2026. stars-a holds the stars to magnitude 7, stars-b the rest; a star's index runs across both files."
    },
    "names": "data/sky/sky.json: names [star index, IAU name, Bayer or Flamsteed designation, Flamsteed], constellations [abbreviation, name, genitive, label RA, label Dec, rank], stick-figure lines {abbreviation: [[ra, dec, ra, dec, ...]]}",
    "starInfo": "data/sky/stars-info.json: [star index, HIP, HR, HD, spectral type, parallax in mas] for named and naked-eye stars",
    "boundaries": "data/sky/bounds.json: IAU constellation boundaries (J2000) as polylines [ra, dec, ra, dec, ...]",
    "milkyWay": "data/sky/milkyway.png: Milky Way brightness, 8-bit greyscale, equirectangular (x = RA 0–360°, y = Dec +90° to −90°)",
    "photographs": "Deep-sky photographs are the colour Digitized Sky Survey (STScI/NASA), streamed as HiPS tiles from CDS: https://alasky.cds.unistra.fr/DSS/DSSColor",
    "sources": [
      "Hipparcos main catalogue (ESA 1997, CDS I/239)",
      "Yale Bright Star Catalogue, 5th edition (CDS V/50)",
      "IAU Catalog of Star Names (WGSN)",
      "IAU constellation boundaries (CDS VI/49)",
      "d3-celestial by Olaf Frohn (BSD-3): constellation lines and names, Milky Way outlines",
      "Clementine 750 nm Moon mosaic (USGS/PDS, public domain) via CDS HiPS"
    ]
  },
  "categories": [
    {
      "id": "telescopes",
      "label": "Telescopes",
      "count": 244,
      "data": "data/telescopes.json",
      "page": "catalog/telescopes.html",
      "finder": "/telescopes?{questionId}={value}&...&p={productId}",
      "questions": [
        {
          "id": "use",
          "title": "How will you use it?",
          "type": "single",
          "options": [
            {
              "value": "visual",
              "label": "Look through it",
              "hint": "Visual observing"
            },
            {
              "value": "imaging",
              "label": "Take photos",
              "hint": "Astrophotography"
            },
            {
              "value": "both",
              "label": "Both",
              "hint": "Visual and photos"
            },
            {
              "value": "any",
              "label": "Not sure",
              "hint": "Show me everything"
            }
          ],
          "help": "Visual observing means looking through an eyepiece in real time. Astrophotography means attaching a camera and stacking long exposures, which suits different optics and a tracking mount. If you are unsure, visual is where most people start."
        },
        {
          "id": "see",
          "title": "What do you want to see?",
          "type": "multi",
          "options": [
            {
              "value": "planets",
              "label": "Moon & planets",
              "hint": "Craters, rings, cloud belts"
            },
            {
              "value": "deepsky",
              "label": "Galaxies & nebulae",
              "hint": "Faint deep-sky objects"
            },
            {
              "value": "widefield",
              "label": "Wide star fields",
              "hint": "Milky Way, big nebulae"
            },
            {
              "value": "any",
              "label": "A bit of everything",
              "hint": "An all-rounder"
            }
          ],
          "multiple": "comma-separated list of values",
          "help": "The Moon and planets reward sharp, high-magnification optics with longer focal ratios. Galaxies and nebulae are faint, so aperture (the width of the main lens or mirror) matters most. Wide star fields and big nebulae suit short focal lengths."
        },
        {
          "id": "design",
          "title": "Which kind of telescope?",
          "type": "multi",
          "options": [
            {
              "value": "refractor",
              "label": "Refractor",
              "hint": "Lenses, no upkeep"
            },
            {
              "value": "reflector",
              "label": "Reflector",
              "hint": "Mirrors on a mount"
            },
            {
              "value": "dobsonian",
              "label": "Dobsonian",
              "hint": "Big mirror, simple base"
            },
            {
              "value": "cat",
              "label": "Compact",
              "hint": "SCT and Maksutov"
            },
            {
              "value": "smart",
              "label": "Smart",
              "hint": "App-controlled"
            },
            {
              "value": "any",
              "label": "Not sure",
              "hint": "Any design"
            }
          ],
          "multiple": "comma-separated list of values",
          "help": "Refractors use lenses: sharp, rugged and maintenance-free, but costly per inch. Reflectors use mirrors and give the most aperture for the money. A Dobsonian is a reflector on a simple rocking base, the classic first big telescope. Compact catadioptrics (Schmidt–Cassegrain, Maksutov) fold a long focal length into a short tube. Smart telescopes are app-controlled cameras with a lens."
        },
        {
          "id": "aperture",
          "title": "How much aperture?",
          "type": "single",
          "options": [
            {
              "value": "s",
              "label": "Small",
              "hint": "Under 90 mm"
            },
            {
              "value": "m",
              "label": "Medium",
              "hint": "90–150 mm"
            },
            {
              "value": "l",
              "label": "Large",
              "hint": "150–250 mm"
            },
            {
              "value": "xl",
              "label": "Very large",
              "hint": "Over 250 mm"
            },
            {
              "value": "any",
              "label": "No preference",
              "hint": "Any size"
            }
          ],
          "help": "Aperture is the diameter of the main lens or mirror. More aperture gathers more light and resolves finer detail, but makes the telescope bigger, heavier and pricier. 100–150 mm (4–6 inches) is a popular sweet spot; 200 mm (8 inches) is the classic recommendation for a first Dobsonian."
        },
        {
          "id": "carry",
          "title": "How portable should it be?",
          "type": "single",
          "options": [
            {
              "value": "grab",
              "label": "Grab and go",
              "hint": "Under 6 kg"
            },
            {
              "value": "portable",
              "label": "Portable",
              "hint": "Up to 15 kg"
            },
            {
              "value": "car",
              "label": "Car portable",
              "hint": "Up to 30 kg"
            },
            {
              "value": "any",
              "label": "Stays home",
              "hint": "Weight doesn't matter"
            }
          ],
          "help": "This is the weight of everything in the box, including any mount, tripod or base. Under 6 kg goes anywhere in one trip; up to about 15 kg is fine for the garden or a car boot; heavier setups usually stay at home or travel in pieces."
        },
        {
          "id": "control",
          "title": "How should it find things?",
          "type": "single",
          "options": [
            {
              "value": "manual",
              "label": "By hand",
              "hint": "Manual pointing"
            },
            {
              "value": "pushto",
              "label": "Guided",
              "hint": "App or push-to"
            },
            {
              "value": "goto",
              "label": "Automatic",
              "hint": "Motorised GoTo"
            },
            {
              "value": "ota",
              "label": "Tube only",
              "hint": "I have a mount"
            },
            {
              "value": "any",
              "label": "No preference",
              "hint": "Show all"
            }
          ],
          "help": "Manual telescopes are pointed by hand with a finder and a star chart: simple, quiet and cheap. Push-to systems (phone apps such as StarSense, or encoders) show you where to push. GoTo mounts have motors that slew to objects and track them. Tube only means you already own a mount."
        },
        {
          "id": "budget",
          "title": "What's your budget?",
          "type": "budget",
          "values": "a number in US dollars (maximum price), or \"any\"",
          "help": "Prices are typical new street prices converted to your currency. Telescopes up to 15% over your budget still appear as a partial fit."
        }
      ]
    },
    {
      "id": "mounts",
      "label": "Mounts",
      "count": 72,
      "data": "data/mounts.json",
      "page": "catalog/mounts.html",
      "finder": "/mounts?{questionId}={value}&...&p={productId}",
      "questions": [
        {
          "id": "load",
          "title": "What will you put on it?",
          "type": "single",
          "options": [
            {
              "value": "camera",
              "label": "Camera & lens",
              "hint": "Up to 3 kg"
            },
            {
              "value": "small",
              "label": "Small scope",
              "hint": "3–7 kg"
            },
            {
              "value": "medium",
              "label": "Medium scope",
              "hint": "7–14 kg"
            },
            {
              "value": "large",
              "label": "Large scope",
              "hint": "14–25 kg"
            },
            {
              "value": "huge",
              "label": "Observatory",
              "hint": "Over 25 kg"
            },
            {
              "value": "any",
              "label": "Not sure",
              "hint": "Show all"
            }
          ],
          "help": "Choose the heaviest setup you plan to carry, including camera, guide scope and accessories. For astrophotography, keep the load to roughly half or two-thirds of the rated payload for smooth tracking."
        },
        {
          "id": "use",
          "title": "Visual or astrophotography?",
          "type": "single",
          "options": [
            {
              "value": "visual",
              "label": "Visual",
              "hint": "Looking through it"
            },
            {
              "value": "imaging",
              "label": "Astrophotography",
              "hint": "Long exposures"
            },
            {
              "value": "both",
              "label": "Both",
              "hint": "Visual and photos"
            },
            {
              "value": "any",
              "label": "Not sure",
              "hint": "Show all"
            }
          ],
          "help": "Long-exposure photography needs a mount that tracks in equatorial mode (or a star tracker). Alt-azimuth mounts are simpler and quicker to set up, and are ideal for visual observing."
        },
        {
          "id": "type",
          "title": "Which type of mount?",
          "type": "multi",
          "options": [
            {
              "value": "gem",
              "label": "Equatorial",
              "hint": "Classic, counterweighted"
            },
            {
              "value": "strain-wave",
              "label": "Strain wave",
              "hint": "Compact, no counterweight"
            },
            {
              "value": "altaz",
              "label": "Alt-azimuth",
              "hint": "Simple up-down, left-right"
            },
            {
              "value": "tracker",
              "label": "Star tracker",
              "hint": "Cameras and small scopes"
            },
            {
              "value": "fork",
              "label": "Fork",
              "hint": "Two-arm alt-az"
            },
            {
              "value": "any",
              "label": "Not sure",
              "hint": "Any type"
            }
          ],
          "multiple": "comma-separated list of values",
          "help": "German equatorial mounts are the classic choice for imaging and use counterweights. Strain-wave (harmonic) mounts are compact and often need no counterweight. Alt-azimuth mounts move up-down and left-right and suit visual use. Star trackers carry a camera or a small telescope for wide-field photos."
        },
        {
          "id": "goto",
          "title": "Motorised GoTo?",
          "type": "single",
          "options": [
            {
              "value": "goto",
              "label": "GoTo",
              "hint": "Finds and tracks objects"
            },
            {
              "value": "manual",
              "label": "Manual",
              "hint": "No power needed"
            },
            {
              "value": "any",
              "label": "No preference",
              "hint": "Show all"
            }
          ],
          "help": "GoTo mounts find thousands of objects for you and track them as the sky turns. Manual mounts are cheaper, lighter and need no power."
        },
        {
          "id": "carry",
          "title": "How heavy can the head be?",
          "type": "single",
          "options": [
            {
              "value": "light",
              "label": "Featherweight",
              "hint": "Under 4 kg"
            },
            {
              "value": "portable",
              "label": "Portable",
              "hint": "Up to 9 kg"
            },
            {
              "value": "heavy",
              "label": "Transportable",
              "hint": "Up to 18 kg"
            },
            {
              "value": "any",
              "label": "Doesn't matter",
              "hint": "Observatory is fine"
            }
          ],
          "help": "This is the mount head alone, without tripod or counterweights. Strain-wave mounts carry a lot for their weight; worm-gear equatorials are heavier for the same payload."
        },
        {
          "id": "tripod",
          "title": "Need a tripod with it?",
          "type": "single",
          "options": [
            {
              "value": "yes",
              "label": "Complete package",
              "hint": "Tripod included"
            },
            {
              "value": "no",
              "label": "Head only",
              "hint": "I'll choose legs"
            },
            {
              "value": "any",
              "label": "No preference",
              "hint": "Show all"
            }
          ],
          "help": "Some mounts ship with a matched tripod or pier; others are sold as a head only so you can choose your own legs."
        },
        {
          "id": "budget",
          "title": "What's your budget?",
          "type": "budget",
          "values": "a number in US dollars (maximum price), or \"any\"",
          "help": "Prices are typical new street prices converted to your currency. Mounts up to 15% over your budget still appear as a partial fit."
        }
      ]
    },
    {
      "id": "tripods",
      "label": "Tripods and piers",
      "count": 32,
      "data": "data/tripods.json",
      "page": "catalog/tripods.html",
      "finder": "/tripods?{questionId}={value}&...&p={productId}",
      "questions": [
        {
          "id": "load",
          "title": "How much will it carry?",
          "type": "single",
          "options": [
            {
              "value": "light",
              "label": "Light",
              "hint": "Travel mounts, trackers"
            },
            {
              "value": "medium",
              "label": "Medium",
              "hint": "EQ5, AM5 class"
            },
            {
              "value": "heavy",
              "label": "Heavy",
              "hint": "EQ6, CGX class"
            },
            {
              "value": "huge",
              "label": "Very heavy",
              "hint": "Observatory mounts"
            },
            {
              "value": "any",
              "label": "Not sure",
              "hint": "Show all"
            }
          ],
          "help": "Add up the mount head, telescope, counterweights and accessories. A tripod rated well above your load is steadier and damps vibrations faster."
        },
        {
          "id": "fits",
          "title": "Which mount will sit on it?",
          "type": "multi",
          "options": [
            {
              "value": "sw-small",
              "label": "Sky-Watcher small",
              "hint": "EQ5, AZ-GTi, Star Adventurer"
            },
            {
              "value": "sw-large",
              "label": "Sky-Watcher large",
              "hint": "HEQ5, EQ6-R, AZ-EQ6"
            },
            {
              "value": "celestron",
              "label": "Celestron",
              "hint": "AVX, CGEM II, CGX"
            },
            {
              "value": "ioptron",
              "label": "iOptron",
              "hint": "CEM, GEM, HEM, HAE"
            },
            {
              "value": "zwo",
              "label": "ZWO",
              "hint": "AM3, AM5, AM7"
            },
            {
              "value": "losmandy",
              "label": "Losmandy",
              "hint": "GM8, G11, Titan"
            },
            {
              "value": "any",
              "label": "Other / not sure",
              "hint": "Show all"
            }
          ],
          "multiple": "comma-separated list of values",
          "help": "Mount bases differ between brands. Many tripods take interchangeable adapter plates, and ‘universal’ tripods use a flat plate or a standard bolt."
        },
        {
          "id": "type",
          "title": "Tripod or pier?",
          "type": "single",
          "options": [
            {
              "value": "tripod",
              "label": "Tripod",
              "hint": "Folds for transport"
            },
            {
              "value": "pier",
              "label": "Pier",
              "hint": "Permanent setups"
            },
            {
              "value": "half-pier",
              "label": "Half pier",
              "hint": "Extra clearance"
            },
            {
              "value": "any",
              "label": "No preference",
              "hint": "Show all"
            }
          ],
          "help": "Tripods fold for transport. Piers are rock-solid columns for a permanent or semi-permanent setup. Half piers raise the mount on a column above shorter legs, giving long refractors more clearance."
        },
        {
          "id": "material",
          "title": "Preferred material?",
          "type": "multi",
          "options": [
            {
              "value": "aluminium",
              "label": "Aluminium",
              "hint": "Light, affordable"
            },
            {
              "value": "steel",
              "label": "Steel",
              "hint": "Heavy and rigid"
            },
            {
              "value": "carbon",
              "label": "Carbon fibre",
              "hint": "Lightest, stiff"
            },
            {
              "value": "wood",
              "label": "Wood",
              "hint": "Damps vibration"
            },
            {
              "value": "any",
              "label": "No preference",
              "hint": "Any material"
            }
          ],
          "multiple": "comma-separated list of values",
          "help": "Steel is heavy and rigid; aluminium is lighter; carbon fibre is the lightest for its stiffness but costs more; wood damps vibration beautifully."
        },
        {
          "id": "carry",
          "title": "How heavy can it be?",
          "type": "single",
          "options": [
            {
              "value": "ultra",
              "label": "Ultralight",
              "hint": "Under 4 kg"
            },
            {
              "value": "light",
              "label": "Light",
              "hint": "Up to 8 kg"
            },
            {
              "value": "sturdy",
              "label": "Sturdy",
              "hint": "Up to 15 kg"
            },
            {
              "value": "any",
              "label": "Doesn't matter",
              "hint": "Heavy is fine"
            }
          ],
          "help": "The tripod or pier on its own. Lighter is easier to carry; heavier is usually steadier."
        },
        {
          "id": "budget",
          "title": "What's your budget?",
          "type": "budget",
          "values": "a number in US dollars (maximum price), or \"any\"",
          "help": "Prices are typical new street prices converted to your currency. Items up to 15% over your budget still appear as a partial fit."
        }
      ]
    },
    {
      "id": "cameras",
      "label": "Astro cameras",
      "count": 38,
      "data": "data/cameras.json",
      "page": "catalog/cameras.html",
      "finder": "/cameras?{questionId}={value}&...&p={productId}",
      "questions": [
        {
          "id": "shoot",
          "title": "What will you photograph?",
          "type": "single",
          "options": [
            {
              "value": "deep-sky",
              "label": "Deep sky",
              "hint": "Galaxies and nebulae"
            },
            {
              "value": "planetary",
              "label": "Planets & Moon",
              "hint": "High-speed video"
            },
            {
              "value": "guiding",
              "label": "Guiding",
              "hint": "For autoguiding"
            },
            {
              "value": "any",
              "label": "Not sure",
              "hint": "Show all"
            }
          ],
          "help": "Deep-sky imaging means long exposures of galaxies and nebulae, where a cooled sensor keeps noise down. Planetary imaging records thousands of short frames of the Moon and planets, so fast, small-pixel cameras win. Guide cameras watch a star so the mount tracks accurately."
        },
        {
          "id": "color",
          "title": "Colour or mono?",
          "type": "single",
          "options": [
            {
              "value": "color",
              "label": "Colour",
              "hint": "One shot, simplest"
            },
            {
              "value": "mono",
              "label": "Mono",
              "hint": "Most sensitive, uses filters"
            },
            {
              "value": "any",
              "label": "No preference",
              "hint": "Show both"
            }
          ],
          "help": "One-shot colour cameras capture a colour image in a single exposure: the simplest way in. Mono cameras are more sensitive and sharper, and shoot through separate filters (LRGB or narrowband) that you combine afterwards."
        },
        {
          "id": "cooled",
          "title": "Cooled sensor?",
          "type": "single",
          "options": [
            {
              "value": "yes",
              "label": "Cooled",
              "hint": "Low noise, long exposures"
            },
            {
              "value": "no",
              "label": "Uncooled",
              "hint": "Light and affordable"
            },
            {
              "value": "any",
              "label": "No preference",
              "hint": "Show everything"
            }
          ],
          "conditional": true,
          "help": "Cooling the sensor 30–40 °C below the air cuts thermal noise in long exposures, which matters most for deep-sky imaging. Uncooled cameras are smaller, lighter and cheaper."
        },
        {
          "id": "scope",
          "title": "What focal length is your telescope?",
          "type": "single",
          "options": [
            {
              "value": "300",
              "label": "Under 400 mm",
              "hint": "Small refractors, lenses"
            },
            {
              "value": "700",
              "label": "400–1000 mm",
              "hint": "Refractors, Newtonians"
            },
            {
              "value": "1400",
              "label": "1000–2000 mm",
              "hint": "SCTs, RCs"
            },
            {
              "value": "2500",
              "label": "Over 2000 mm",
              "hint": "Big SCTs, CDKs"
            },
            {
              "value": "any",
              "label": "Not sure",
              "hint": "Skip this"
            }
          ],
          "conditional": true,
          "help": "Matching pixel size to focal length gives well-sampled stars: around 1–2 arcseconds per pixel suits most skies. Long focal lengths pair best with larger pixels, short ones with small pixels."
        },
        {
          "id": "sensor",
          "title": "How big a sensor?",
          "type": "single",
          "options": [
            {
              "value": "small",
              "label": "Small",
              "hint": "Under 13 mm diagonal"
            },
            {
              "value": "medium",
              "label": "Medium",
              "hint": "1″ and 4/3″ class"
            },
            {
              "value": "apsc",
              "label": "APS-C",
              "hint": "About 28 mm diagonal"
            },
            {
              "value": "full",
              "label": "Full frame",
              "hint": "About 43 mm diagonal"
            },
            {
              "value": "any",
              "label": "No preference",
              "hint": "Show everything"
            }
          ],
          "help": "Bigger sensors cover more sky per frame but cost more and need a telescope with a large, flat field. APS-C is the sweet spot for deep-sky imaging; small sensors suit planets, guiding and long focal lengths."
        },
        {
          "id": "budget",
          "title": "What's your budget?",
          "type": "budget",
          "values": "a number in US dollars (maximum price), or \"any\"",
          "help": "Prices are typical new street prices for the camera alone, converted to your currency. Cameras up to 15% over your budget still appear as a partial fit."
        }
      ]
    },
    {
      "id": "guiding",
      "label": "Guide scopes and off-axis guiders",
      "count": 18,
      "data": "data/guiding.json",
      "page": "catalog/guiding.html",
      "finder": "/guiding?{questionId}={value}&...&p={productId}",
      "questions": [
        {
          "id": "type",
          "title": "Guide scope or off-axis guider?",
          "type": "single",
          "options": [
            {
              "value": "guide-scope",
              "label": "Guide scope",
              "hint": "A small scope alongside"
            },
            {
              "value": "oag",
              "label": "Off-axis guider",
              "hint": "Guides through your scope"
            },
            {
              "value": "any",
              "label": "Not sure",
              "hint": "Show both"
            }
          ],
          "help": "A guide scope is a small telescope riding alongside the main one: simple, cheap and easy to find stars with. An off-axis guider picks light from the edge of the main telescope’s own field, so nothing can flex between them, which makes it the better choice beyond about 1000 mm."
        },
        {
          "id": "imaging",
          "title": "What focal length do you image at?",
          "type": "single",
          "options": [
            {
              "value": "300",
              "label": "Under 500 mm",
              "hint": "Small refractors"
            },
            {
              "value": "750",
              "label": "500–1000 mm",
              "hint": "Refractors, Newtonians"
            },
            {
              "value": "1500",
              "label": "1000–2000 mm",
              "hint": "SCTs, RCs"
            },
            {
              "value": "2500",
              "label": "Over 2000 mm",
              "hint": "Big SCTs, CDKs"
            },
            {
              "value": "any",
              "label": "Not sure",
              "hint": "Skip this"
            }
          ],
          "help": "As a rule of thumb, a guide scope should have at least a fifth of your imaging focal length. At long focal lengths an off-axis guider avoids flexure between two separate telescopes."
        },
        {
          "id": "carry",
          "title": "How light should it be?",
          "type": "single",
          "options": [
            {
              "value": "feather",
              "label": "Featherweight",
              "hint": "Under 250 g"
            },
            {
              "value": "light",
              "label": "Light",
              "hint": "Under 600 g"
            },
            {
              "value": "any",
              "label": "Doesn't matter",
              "hint": "Any weight"
            }
          ],
          "conditional": true,
          "help": "Everything on top of the main telescope adds to the mount’s load. Mini guide scopes weigh about 120–200 g."
        },
        {
          "id": "budget",
          "title": "What's your budget?",
          "type": "budget",
          "values": "a number in US dollars (maximum price), or \"any\"",
          "help": "Prices are typical new street prices converted to your currency. Items up to 15% over your budget still appear as a partial fit."
        }
      ]
    },
    {
      "id": "filters",
      "label": "Filters",
      "count": 50,
      "data": "data/filters.json",
      "page": "catalog/filters.html",
      "finder": "/filters?{questionId}={value}&...&p={productId}",
      "questions": [
        {
          "id": "use",
          "title": "For imaging or visual?",
          "type": "single",
          "options": [
            {
              "value": "imaging",
              "label": "Imaging",
              "hint": "With a camera"
            },
            {
              "value": "visual",
              "label": "Visual",
              "hint": "At the eyepiece"
            }
          ],
          "help": "Imaging filters are designed for camera sensors and come mounted (1.25″, 2″) or unmounted (31, 36, 50 mm) for filter wheels. Visual filters boost contrast at the eyepiece."
        },
        {
          "id": "camera",
          "title": "What camera do you use?",
          "type": "single",
          "options": [
            {
              "value": "color",
              "label": "Colour camera",
              "hint": "OSC, DSLR or mirrorless"
            },
            {
              "value": "mono",
              "label": "Mono camera",
              "hint": "With a filter wheel"
            },
            {
              "value": "any",
              "label": "Not sure",
              "hint": "Show all"
            }
          ],
          "conditional": true,
          "help": "Dual-band and multi-band filters are made for one-shot colour cameras, DSLRs and mirrorless cameras. Mono cameras use a separate filter for each line or colour."
        },
        {
          "id": "sky",
          "title": "How dark is your sky?",
          "type": "single",
          "options": [
            {
              "value": "city",
              "label": "City",
              "hint": "Bright, glowing sky"
            },
            {
              "value": "suburb",
              "label": "Suburbs",
              "hint": "Milky Way faint"
            },
            {
              "value": "dark",
              "label": "Dark site",
              "hint": "Milky Way obvious"
            }
          ],
          "help": "Under light-polluted skies, narrowband and dual-band filters let emission nebulae shine through; broadband light-pollution filters help less with modern LED lighting. Under dark skies you may need little more than a UV/IR cut filter."
        },
        {
          "id": "target",
          "title": "What will you target?",
          "type": "single",
          "options": [
            {
              "value": "nebulae",
              "label": "Nebulae",
              "hint": "Emission nebulae"
            },
            {
              "value": "galaxies",
              "label": "Galaxies & clusters",
              "hint": "Broadband targets"
            },
            {
              "value": "planets",
              "label": "Planets & Moon",
              "hint": "Contrast and detail"
            },
            {
              "value": "any",
              "label": "A bit of everything",
              "hint": "An all-rounder"
            }
          ],
          "help": "Emission nebulae glow in a few narrow colours (hydrogen-alpha, oxygen-III, sulphur-II), so line filters isolate them beautifully. Galaxies and star clusters emit across the spectrum and need broadband filters. Planets want colour, neutral-density or infrared filters."
        },
        {
          "id": "size",
          "title": "Which size?",
          "type": "multi",
          "options": [
            {
              "value": "1.25in",
              "label": "1.25″",
              "hint": "Eyepieces, small cameras"
            },
            {
              "value": "2in",
              "label": "2″",
              "hint": "Most imaging trains"
            },
            {
              "value": "31mm",
              "label": "31 mm",
              "hint": "Small filter wheels"
            },
            {
              "value": "36mm",
              "label": "36 mm",
              "hint": "APS-C filter wheels"
            },
            {
              "value": "50mm",
              "label": "50 mm",
              "hint": "Full-frame wheels"
            },
            {
              "value": "clip-in",
              "label": "Clip-in",
              "hint": "Inside a camera body"
            },
            {
              "value": "any",
              "label": "Not sure",
              "hint": "Any size"
            }
          ],
          "multiple": "comma-separated list of values",
          "help": "1.25″ and 2″ filters screw into eyepieces, diagonals and camera noses. Unmounted 31, 36 and 50 mm filters go in filter wheels (36 mm suits APS-C, 50 mm full frame). Clip-in filters sit inside a DSLR or mirrorless body."
        },
        {
          "id": "budget",
          "title": "What's your budget?",
          "type": "budget",
          "values": "a number in US dollars (maximum price), or \"any\"",
          "help": "Prices are typical new street prices for the size shown, converted to your currency. Sets are priced as a set."
        }
      ]
    },
    {
      "id": "focusers",
      "label": "Focusers",
      "count": 12,
      "data": "data/focusers.json",
      "page": "catalog/focusers.html",
      "finder": "/focusers?{questionId}={value}&...&p={productId}",
      "questions": [
        {
          "id": "type",
          "title": "Motorised or manual?",
          "type": "single",
          "options": [
            {
              "value": "electronic",
              "label": "Motorised",
              "hint": "Autofocus from your software"
            },
            {
              "value": "manual",
              "label": "Manual upgrade",
              "hint": "Smoother, stronger focuser"
            },
            {
              "value": "any",
              "label": "Not sure",
              "hint": "Show both"
            }
          ],
          "help": "Motorised focusers (autofocusers) turn your existing focuser from a PC, ASIAIR or app, and refocus as the temperature drops. Manual upgrade focusers replace a sloppy stock focuser with a smooth, precise one."
        },
        {
          "id": "scope",
          "title": "Which telescope is it for?",
          "type": "multi",
          "options": [
            {
              "value": "refractor",
              "label": "Refractor",
              "hint": "Crayford or rack and pinion"
            },
            {
              "value": "newtonian",
              "label": "Newtonian",
              "hint": "Reflectors, astrographs"
            },
            {
              "value": "sct",
              "label": "SCT",
              "hint": "Schmidt–Cassegrains"
            },
            {
              "value": "any",
              "label": "Other / not sure",
              "hint": "Show all"
            }
          ],
          "multiple": "comma-separated list of values"
        },
        {
          "id": "control",
          "title": "How will you control it?",
          "type": "single",
          "options": [
            {
              "value": "asiair",
              "label": "ASIAIR",
              "hint": "ZWO’s controller"
            },
            {
              "value": "pc",
              "label": "Computer",
              "hint": "ASCOM or INDI"
            },
            {
              "value": "hand",
              "label": "Hand or app",
              "hint": "No computer needed"
            },
            {
              "value": "any",
              "label": "No preference",
              "hint": "Show everything"
            }
          ],
          "conditional": true,
          "help": "ZWO’s ASIAIR drives ZWO focusers and a few partners’. ASCOM (Windows) and INDI (Linux, macOS) work with most imaging software. Some models also have a hand controller or app."
        },
        {
          "id": "load",
          "title": "How heavy is your imaging train?",
          "type": "single",
          "options": [
            {
              "value": "light",
              "label": "Light",
              "hint": "Under 1.5 kg"
            },
            {
              "value": "medium",
              "label": "Medium",
              "hint": "1.5–4 kg"
            },
            {
              "value": "heavy",
              "label": "Heavy",
              "hint": "Over 4 kg"
            },
            {
              "value": "any",
              "label": "Not sure",
              "hint": "Skip this"
            }
          ],
          "help": "Camera, filter wheel, flattener and guide camera add up. A focuser rated well above that load won’t slip or tilt."
        },
        {
          "id": "budget",
          "title": "What's your budget?",
          "type": "budget",
          "values": "a number in US dollars (maximum price), or \"any\"",
          "help": "Prices are typical new street prices converted to your currency. Items up to 15% over your budget still appear as a partial fit."
        }
      ]
    },
    {
      "id": "rotators",
      "label": "Rotators",
      "count": 6,
      "data": "data/rotators.json",
      "page": "catalog/rotators.html",
      "finder": "/rotators?{questionId}={value}&...&p={productId}",
      "questions": [
        {
          "id": "type",
          "title": "Motorised or manual?",
          "type": "single",
          "options": [
            {
              "value": "electronic",
              "label": "Motorised",
              "hint": "Frame from your software"
            },
            {
              "value": "manual",
              "label": "Manual",
              "hint": "Turn and lock by hand"
            },
            {
              "value": "any",
              "label": "Not sure",
              "hint": "Show both"
            }
          ],
          "help": "A motorised rotator turns the camera to frame a target precisely, and repeats the same framing on later nights, all from your software. A manual rotator lets you turn and lock the camera by hand."
        },
        {
          "id": "sensor",
          "title": "Largest sensor you’ll use?",
          "type": "single",
          "options": [
            {
              "value": "apsc",
              "label": "APS-C or smaller",
              "hint": "Needs about 30 mm clear"
            },
            {
              "value": "full",
              "label": "Full frame",
              "hint": "Needs about 45 mm clear"
            },
            {
              "value": "medium",
              "label": "Medium format",
              "hint": "Needs about 60 mm clear"
            },
            {
              "value": "any",
              "label": "Not sure",
              "hint": "Skip this"
            }
          ],
          "help": "The rotator’s clear aperture must be wide enough not to darken the corners of your sensor: about 30 mm for APS-C and 45 mm for full frame."
        },
        {
          "id": "backfocus",
          "title": "How much back focus can you spare?",
          "type": "single",
          "options": [
            {
              "value": "20",
              "label": "Very little",
              "hint": "Thinner than 20 mm"
            },
            {
              "value": "30",
              "label": "Some",
              "hint": "Up to 30 mm"
            },
            {
              "value": "any",
              "label": "Plenty",
              "hint": "Any thickness"
            }
          ],
          "help": "A rotator sits between the flattener or reducer and the camera, so its thickness comes out of a fixed back-focus budget (often 55 mm)."
        },
        {
          "id": "control",
          "title": "How will you control it?",
          "type": "single",
          "options": [
            {
              "value": "asiair",
              "label": "ASIAIR",
              "hint": "ZWO’s controller"
            },
            {
              "value": "pc",
              "label": "Computer",
              "hint": "ASCOM or INDI"
            },
            {
              "value": "hand",
              "label": "Hand or app",
              "hint": "No computer needed"
            },
            {
              "value": "any",
              "label": "No preference",
              "hint": "Show everything"
            }
          ],
          "conditional": true,
          "help": "ZWO’s ASIAIR drives ZWO rotators and a few partners’. ASCOM (Windows) and INDI (Linux, macOS) work with most imaging software. Some models also have a hand controller or app."
        },
        {
          "id": "budget",
          "title": "What's your budget?",
          "type": "budget",
          "values": "a number in US dollars (maximum price), or \"any\"",
          "help": "Prices are typical new street prices converted to your currency. Items up to 15% over your budget still appear as a partial fit."
        }
      ]
    },
    {
      "id": "eyepieces",
      "label": "Eyepiece lines",
      "count": 25,
      "data": "data/eyepieces.json",
      "page": "catalog/eyepieces.html",
      "finder": "/eyepieces?{questionId}={value}&...&p={productId}",
      "questions": [
        {
          "id": "scope",
          "title": "What focal length is your telescope?",
          "type": "single",
          "options": [
            {
              "value": "500",
              "label": "Short",
              "hint": "Under 600 mm"
            },
            {
              "value": "900",
              "label": "Medium",
              "hint": "600–1200 mm"
            },
            {
              "value": "1500",
              "label": "Long",
              "hint": "1200–2000 mm"
            },
            {
              "value": "2500",
              "label": "Very long",
              "hint": "Over 2000 mm"
            },
            {
              "value": "any",
              "label": "Not sure",
              "hint": "Skip this"
            }
          ],
          "help": "Magnification is your telescope’s focal length divided by the eyepiece’s. Knowing it lets the guide pick eyepiece lines that reach the powers you need."
        },
        {
          "id": "target",
          "title": "What will you look at?",
          "type": "single",
          "options": [
            {
              "value": "planets",
              "label": "Planets & Moon",
              "hint": "High power"
            },
            {
              "value": "deepsky",
              "label": "Deep sky",
              "hint": "Low to medium power"
            },
            {
              "value": "any",
              "label": "Everything",
              "hint": "A versatile set"
            }
          ],
          "help": "Planets and the Moon need high power, roughly 150–250×. Galaxies, nebulae and clusters look best at low to medium power, roughly 30–100×, where a wide apparent field frames them well."
        },
        {
          "id": "glasses",
          "title": "Do you observe with glasses on?",
          "type": "single",
          "options": [
            {
              "value": "yes",
              "label": "Yes",
              "hint": "Needs 17 mm+ eye relief"
            },
            {
              "value": "comfort",
              "label": "Comfort matters",
              "hint": "13 mm+ eye relief"
            },
            {
              "value": "no",
              "label": "No",
              "hint": "Any eye relief"
            }
          ],
          "help": "If you keep your glasses on at the eyepiece (for astigmatism, say), you need about 17 mm or more of eye relief to see the whole field. Longer eye relief is also simply more comfortable."
        },
        {
          "id": "field",
          "title": "How wide a view?",
          "type": "multi",
          "options": [
            {
              "value": "standard",
              "label": "Standard",
              "hint": "50–62°"
            },
            {
              "value": "wide",
              "label": "Wide",
              "hint": "65–72°"
            },
            {
              "value": "ultra",
              "label": "Ultra-wide",
              "hint": "80° and more"
            },
            {
              "value": "zoom",
              "label": "Zoom",
              "hint": "Many powers in one"
            },
            {
              "value": "any",
              "label": "No preference",
              "hint": "Any field"
            }
          ],
          "multiple": "comma-separated list of values",
          "help": "Apparent field is how wide the view looks. 50° feels like a porthole; 82° and 100° feel like a spacewalk but cost and weigh more. A zoom covers a range of powers in one eyepiece."
        },
        {
          "id": "barrel",
          "title": "Which barrel size?",
          "type": "single",
          "options": [
            {
              "value": "1.25in",
              "label": "1.25″ only",
              "hint": "Fits every telescope"
            },
            {
              "value": "2in",
              "label": "2″ welcome",
              "hint": "I have a 2″ focuser"
            },
            {
              "value": "any",
              "label": "Not sure",
              "hint": "Show all"
            }
          ],
          "help": "Every telescope takes 1.25″ eyepieces. 2″ eyepieces need a 2″ focuser or diagonal, but give the widest low-power views."
        },
        {
          "id": "budget",
          "title": "Budget per eyepiece?",
          "type": "budget",
          "values": "a number in US dollars (maximum price), or \"any\"",
          "help": "Prices are typical new street prices for one eyepiece of the line, converted to your currency."
        }
      ]
    }
  ],
  "links": {
    "finder": "/{category}?{answers}: opens the guided finder with answers applied; add p={productId} to open a product.",
    "fieldOfView": "/tools/fov?t={telescopeId}|ap={mm}&fl={mm}&mode=eyepiece|camera&e={eyepieceId}&ef={mm}&afov={deg}&c={cameraId}|sw={mm}&sh={mm}&px={um}&x={0.63|0.8|1|2|3}&target={moon|jupiter|saturn|mars|m42|m31|m45|m51|m13|m57|dc}",
    "telescopePower": "/tools/scope?t={telescopeId}|ap={mm}&fl={mm}",
    "doubleStars": "/tools/doubles?t={telescopeId}|ap={mm}&fl={mm}&ef={eyepiece mm}&x={1|2|3}&seeing={good|avg|poor}",
    "darkSkies": "/tools/sky?bortle={1-9}",
    "cameraMatch": "/tools/camera?t={telescopeId}|fl={mm}&c={cameraId}|px={um}&seeing={good|avg|poor}",
    "subLength": "/tools/subs?t={telescopeId}|ap={mm}&fl={mm}&x={0.63|0.8|1|2|3}&c={cameraId}|px={um}&rn={read noise e-}&col={color|mono}&filt={broad|rgb|duo|nb7|nb3}&bortle={1-9}",
    "sharpStars": "/tools/exposure?pcam={ff24|ff45|apsc24|m43|phone}&lens={mm}&fno={f-number}&dec={declination deg}",
    "polarAlignment": "/tools/polar?lat={deg}&lon={deg}&name={place}&view={eye|scope}",
    "calculators": "/tools/calc (aperture limits, focal length and ratio, light grasp, eyepiece, binoculars, camera sampling, dust shadows, constellation at a position, J2000 to apparent)",
    "tonight": "/tonight?lat={deg}&lon={deg}&name={place}&area={region, country}",
    "events": "/events?year={YYYY}&show={all|eclipse|moon|planet|conj|meteor|season}&all={1 to include minor events}",
    "spaceWeather": "/space (live NOAA SWPC data: Kp and forecast, solar wind, flares, sunspots, OVATION aurora)",
    "universe": "/universe?target={sun | mercury … neptune | pluto | moon | io | europa | ganymede | callisto | titan | triton | charon | milkyway | m31 | m33 | lmc | smc | m81 | m82 | m51 | m101 | cena | m104 | m87 | ngc253 | hip:{Hipparcos number}}",
    "skyMap": "/sky?target={object id from data/objects.json | moon | sun | mercury … neptune | a star's IAU name}&t={UTC time, e.g. 2026-10-20T23:00Z}&lat={deg}&lon={deg}&name={place}; or ra={deg}&dec={deg}&fov={deg} to centre a position",
    "targets": "/targets?lat={deg}&lon={deg}&name={place}&date={YYYY-MM-DD, evening of}&mode={look|photo}&gear={eye|bino|small|large|lens|scope}&lens={mm}&focal={mm}&sensor={apsc|ff|m43|one}&filter={none|nb}&bortle={1-9}&group={all|solar|galaxies|nebulae|planetary|clusters|stars}&sort={score|time|alt|mag}",
    "lightPollutionMap": "/tools/map?lat={deg}&lon={deg}&z={zoom 2-12}",
    "fieldOfViewAnyObject": "/tools/fov?...&target={any id from data/objects.json}"
  },
  "formulas": {
    "magnification": "telescope focal length / eyepiece focal length",
    "trueField": "eyepiece apparent field / magnification (degrees)",
    "exitPupil": "aperture / magnification (mm)",
    "pixelScale": "206.265 × pixel size (µm) / focal length (mm), arcseconds per pixel",
    "sensorField": "2 × atan(sensor size / (2 × focal length)), degrees",
    "maxUsefulMagnification": "2 × aperture in mm",
    "limitingMagnitude": "7.7 + 5 × log10(aperture in cm)",
    "dawesLimit": "116 / aperture in mm (arcseconds)",
    "npfRule": "(35 × f-number + 30 × pixel pitch µm) / (focal length mm × cos declination), seconds",
    "fiveHundredRule": "500 / (focal length × crop factor), seconds",
    "subLength": "10 × read noise² / sky electrons per pixel per second (sky noise then adds under 5% over one endless exposure)",
    "polarisPosition": "hour angle = local sidereal time − Polaris RA (precessed to date); by eye facing north the star sits at angle −HA (anticlockwise from 12 o'clock); inverted polar scopes add 180°",
    "bortleLimitingMagnitude": {
      "1": 7.8,
      "2": 7.3,
      "3": 6.8,
      "4": 6.3,
      "5": 5.8,
      "6": 5.3,
      "7": 4.8,
      "8": 4.3,
      "9": 4
    },
    "bortleSkyBrightness": {
      "1": 21.9,
      "2": 21.6,
      "3": 21.4,
      "4": 20.8,
      "5": 20,
      "6": 19.3,
      "7": 18.6,
      "8": 18,
      "9": 17.5
    },
    "moonlight": "Krisciunas & Schaefer (1991) scattered-moonlight model, added to the Bortle sky brightness at each target",
    "nakedEyeLimit": "7.93 − 5 × log10(10^(4.316 − SQM/5) + 1) (Schaefer)",
    "lightPollution": "Sky glow modelled from NASA Black Marble (VIIRS 2016) night lights: each pixel's light spread with distance^-2.5 × exp(-d/300 km), summed over 300 km, converted to mag/arcsec² and Bortle class; about 0.3 mag rms against reference sites",
    "eclipses": "Meeus, Astronomical Algorithms ch. 54 for each new and full Moon (gamma, u, magnitudes, semi-durations); local solar circumstances from topocentric Sun (ch. 25) and Moon (ch. 47) positions",
    "starDistance": "light years = 3261.56 / parallax (milliarcseconds); absolute magnitude M = m + 5·log10(parallax / 1000) + 5; seen from d light years, m = M + 5·log10(d × 0.306601) − 5",
    "aurora": "Kp needed at a place ≈ (66.5° − |geomagnetic latitude|) / 2.2, geomagnetic latitude from a dipole with its pole at 80.8° N, 72.8° W; plus NOAA's OVATION probability overhead and within about 1000 km poleward",
    "targetScore": "visibility (limiting magnitude and surface brightness against the sky, moonlight included) × fit to the instrument or camera field × altitude × hours available (imaging) × interest"
  }
}
