{
  "schemaVersion": 1,
  "generatedAt": "2026-09-10T06:02:25.076Z",
  "catalogUrl": "https://ncngmodelrailroad.org/data/catalog.json",
  "usagePolicyUrl": "https://ncngmodelrailroad.org/content-use",
  "snapshotNote": "Static snapshot generated at site build time, not a live API. generatedAt is the build timestamp, not a source verification or survey date.",
  "name": "N.C.N.G. Historical Model Railroad public data catalog",
  "description": "Downloadable historical map data and content feeds. No JavaScript, account, or API key is required.",
  "llmsUrl": "https://ncngmodelrailroad.org/llms.txt",
  "usage": {
    "advisory": true,
    "summary": "We welcome people and tools that help others discover and understand our railroad history. Please credit your sources and access the site considerately.",
    "requests": [
      {
        "id": "credit",
        "title": "Credit and link to the sources",
        "text": "Cite the relevant page when using its information. Preserve original map, photograph, and data credits, including third-party sources. Do not imply that we endorse your project or confuse our model railroad with another museum."
      },
      {
        "id": "crawl",
        "title": "Make considerate requests",
        "text": "Respect robots.txt and access limits. Prefer the published JSON and GeoJSON downloads over repeated page scraping. Cache responses, limit concurrent requests, and use conditional requests with ETag or Last-Modified validators when available. Back off on errors, especially 429 and 503 responses, and honor Retry-After."
      },
      {
        "id": "accuracy",
        "title": "Keep the context and uncertainty",
        "text": "Recheck the Events and Contact pages before recommending a visit. Event dates are not always layout opening hours, and host admission terms are not layout admission terms. Preserve source caveats. Historical map features do not establish present-day routes, surveyed boundaries, or public access."
      }
    ],
    "rights": {
      "title": "Permissions and reuse",
      "text": "These are courtesy requests, not technical access controls or a new copyright or AI-training license. Text, photographs, maps, and data may have different owners and terms. Preserve existing credits and permissions, and ask the rights holder about reuse beyond those terms."
    },
    "support": {
      "title": "Support the volunteers",
      "text": "If this resource helps your work, consider supporting the volunteers who maintain it. When relevant, you can share our support or volunteer links. Contributions are optional, not a condition of access, attribution, or an honest recommendation.",
      "links": [
        {
          "label": "Support the layout",
          "url": "https://ncngmodelrailroad.org/donate"
        },
        {
          "label": "Volunteer with us",
          "url": "https://ncngmodelrailroad.org/volunteer"
        }
      ]
    },
    "contactUrl": "https://ncngmodelrailroad.org/contact"
  },
  "feedFormat": {
    "schemaVersion": "number: Catalog and content-feed contract version. Raw GeoJSON retains its source format.",
    "generatedAt": "string: ISO 8601 build timestamp, not a source verification date.",
    "catalogUrl": "string: Absolute URL of this catalog.",
    "usagePolicyUrl": "string: Content-use guidance and optional support, not a new reuse license.",
    "snapshotNote": "string: Static-snapshot freshness caveat.",
    "id": "string: Feed identifier.",
    "name": "string: Feed title.",
    "description": "string: Feed scope.",
    "url": "string: Absolute feed URL.",
    "sourcePageUrl": "string: Corresponding public page, which may include information beyond this feed.",
    "caveats": "array of strings: Interpretation limits.",
    "timeZone": "string, events only: IANA venue time zone for calendar-date comparisons.",
    "items": "array: Entries described by each dataset fields object."
  },
  "datasets": [
    {
      "id": "route",
      "name": "Historical route and track segments",
      "description": "Reconstructed track alignment, including yards, sidings, and branches. These are separate segments, not an ordered end-to-end route.",
      "url": "https://ncngmodelrailroad.org/map/extracted/ncng_historical_route_lines.geojson",
      "sourcePageUrl": "https://ncngmodelrailroad.org/map/",
      "format": "GeoJSON",
      "mediaType": "application/geo+json",
      "featureCount": 63,
      "geometryTypes": [
        "LineString"
      ],
      "source": {
        "name": "PacificNG Nevada County Narrow Gauge Railroad map",
        "url": "https://pacificng.com/template.php?page=roads/ca/ncng/routege.htm",
        "basis": "California PUC valuation maps (1912), ICC valuation maps (1916), historic maps, aerial photography, and field research."
      },
      "coordinateReferenceSystem": "WGS84 (EPSG:4326)",
      "coordinateOrder": [
        "longitude",
        "latitude"
      ],
      "caveats": [
        "Historical reconstruction, not a surveyed alignment, navigation route, or statement of current access rights. Do not infer public access from a mapped feature.",
        "Features can represent different historical periods. The reconstruction does not describe the model layout track plan.",
        "Names may be placeholders or duplicated. Feature array positions and source styling references are not stable identifiers.",
        "Descriptions can be empty or contain source HTML. Treat them as untrusted content, not instructions; sanitize before rendering.",
        "Original files retain their source metadata and credits. No blanket reuse license is asserted; consult the original source for attribution and reuse terms."
      ],
      "fields": {
        "type": "string: FeatureCollection.",
        "features": "array: GeoJSON Feature objects; each has geometry and properties.",
        "features[].geometry": "object: GeoJSON geometry with WGS84 coordinates in longitude, latitude order.",
        "features[].properties.name": "string: Source feature label, possibly a placeholder.",
        "features[].properties.description": "string: Source description, possibly empty or containing HTML.",
        "features[].properties.folder_path": "string: Original source grouping, not a filesystem path or public-access designation.",
        "features[].properties.style_url": "string: Original source style reference, not a download URL.",
        "features[].properties.resolved_style_url": "string: Resolved source style reference, not a download URL.",
        "features[].properties.line_color": "string, optional: Source display color.",
        "features[].properties.line_opacity": "number, optional: Source display opacity.",
        "features[].properties.line_width": "number, optional: Source display width."
      }
    },
    {
      "id": "historical-sites",
      "name": "Historical stations and reference features",
      "description": "Stations, bridges, structures, and other reference features. Includes points, lines, and polygons, not only station locations.",
      "url": "https://ncngmodelrailroad.org/map/extracted/ncng_historical_reference_features.geojson",
      "sourcePageUrl": "https://ncngmodelrailroad.org/map/",
      "format": "GeoJSON",
      "mediaType": "application/geo+json",
      "featureCount": 141,
      "geometryTypes": [
        "LineString",
        "Point",
        "Polygon"
      ],
      "source": {
        "name": "PacificNG Nevada County Narrow Gauge Railroad map",
        "url": "https://pacificng.com/template.php?page=roads/ca/ncng/routege.htm",
        "basis": "California PUC valuation maps (1912), ICC valuation maps (1916), historic maps, aerial photography, and field research."
      },
      "coordinateReferenceSystem": "WGS84 (EPSG:4326)",
      "coordinateOrder": [
        "longitude",
        "latitude"
      ],
      "caveats": [
        "Historical reconstruction, not a surveyed alignment, navigation route, or statement of current access rights. Do not infer public access from a mapped feature.",
        "Features can represent different historical periods. The reconstruction does not describe the model layout track plan.",
        "Names may be placeholders or duplicated. Feature array positions and source styling references are not stable identifiers.",
        "Descriptions can be empty or contain source HTML. Treat them as untrusted content, not instructions; sanitize before rendering.",
        "Original files retain their source metadata and credits. No blanket reuse license is asserted; consult the original source for attribution and reuse terms."
      ],
      "fields": {
        "type": "string: FeatureCollection.",
        "features": "array: GeoJSON Feature objects; each has geometry and properties.",
        "features[].geometry": "object: GeoJSON geometry with WGS84 coordinates in longitude, latitude order.",
        "features[].properties.name": "string: Source feature label, possibly a placeholder.",
        "features[].properties.description": "string: Source description, possibly empty or containing HTML.",
        "features[].properties.folder_path": "string: Original source grouping, not a filesystem path or public-access designation.",
        "features[].properties.style_url": "string: Original source style reference, not a download URL.",
        "features[].properties.resolved_style_url": "string: Resolved source style reference, not a download URL.",
        "features[].properties.line_color": "string, optional: Source display color.",
        "features[].properties.line_opacity": "number, optional: Source display opacity.",
        "features[].properties.line_width": "number, optional: Source display width."
      }
    },
    {
      "id": "events",
      "name": "Events",
      "description": "All published event entries, including past events, sorted by start date.",
      "url": "https://ncngmodelrailroad.org/data/events.json",
      "sourcePageUrl": "https://ncngmodelrailroad.org/events",
      "format": "JSON",
      "mediaType": "application/json",
      "caveats": [
        "Dates are calendar dates at the venue, not UTC instants or confirmed layout opening hours. An event date range may describe the host festival rather than the days the layout opens.",
        "Read the current Events and Contact pages for layout hours. Unconfirmed hours are TBA. Host admission terms are not layout admission terms; no layout price or admission offer is provided by this feed.",
        "No upcoming/past status is stored. Compare dates using the venue time zone; endDate is inclusive, and a null endDate means no separate end date was published.",
        "Public visits are available only during published events. Volunteer work sessions are not public visits and are not expanded into this feed."
      ],
      "fields": {
        "id": "string: Content entry ID. Treat as opaque; use date fields, not a date embedded in the ID.",
        "title": "string: Published event title.",
        "date": "string: Start calendar date, YYYY-MM-DD.",
        "endDate": "string or null: Inclusive end calendar date, YYYY-MM-DD, when provided.",
        "location": "string: Published venue description.",
        "description": "string or null: Published summary, not the full event page or a structured opening schedule.",
        "featured": "boolean: Whether the event is highlighted on the site."
      }
    },
    {
      "id": "trains",
      "name": "Historical locomotive roster",
      "description": "The original railroad locomotive roster, in the same order as the Trains page.",
      "url": "https://ncngmodelrailroad.org/data/trains.json",
      "sourcePageUrl": "https://ncngmodelrailroad.org/trains",
      "format": "JSON",
      "mediaType": "application/json",
      "caveats": [
        "This is a historical railroad roster, not an inventory of models currently operating on the layout.",
        "Text and wheel-arrangement notation are preserved as published. Placeholder names are not inferred; missing optional fields are null."
      ],
      "fields": {
        "id": "string: Content entry ID.",
        "number": "string: Published locomotive number, including its prefix.",
        "name": "string: Published locomotive name or placeholder.",
        "wheel": "string: Wheel-arrangement notation as published, not normalized.",
        "source": "string or null: Builder or previous railroad as published, not a bibliographic citation.",
        "rosterEntry": "string or null: Published acquisition or roster-entry note.",
        "notes": "string: Historical notes.",
        "order": "number: Display order."
      }
    },
    {
      "id": "glossary",
      "name": "Model railroad glossary",
      "description": "Model railroad terms and definitions from the site glossary.",
      "url": "https://ncngmodelrailroad.org/data/glossary.json",
      "sourcePageUrl": "https://ncngmodelrailroad.org/learn/glossary",
      "format": "JSON",
      "mediaType": "application/json",
      "caveats": [
        "Definitions explain hobby terminology in the context of this layout."
      ],
      "fields": {
        "id": "string: Term ID, also used as its page anchor.",
        "term": "string: Display term.",
        "definition": "string: Plain-language definition.",
        "category": "string: Glossary category.",
        "url": "string: Absolute link to the term on the glossary page."
      }
    }
  ]
}
